我想在BigCommerce产品页面上向运输公司提出一些API请求,并且我有一些凭证,这些凭证我不想在JS代码中显示。根据BigCommerce的特定环境,我无法在后端代码中进行任何更改。我读了很多类似的问题,现在只有一个问题。
使用我自己的API后端Web服务器(存储凭据信息并将POST请求发送到第三方API)是这样做的唯一方法吗?然后,我将通过JS对我自己的API的POST请求接收该信息。
我试图在Nginx Web服务器上运行Ruby API应用程序。但是,此操作未成功,因为浏览器根据CORS政策阻止了我的fetch()请求。我尝试将Access-Control-Allow-Origin:*参数添加到服务器响应标头中,并将其写入ruby配置文件中,但浏览器无法识别它。我也尝试在nginx端设置配置文件,但这对CORS策略响应没有帮助。这很有趣,因为使用Restlet应用程序时,我收到了来自我自己的API应用程序的响应,并带有正确的信息和状态“确定”。
(async function application() {
let dataRuby = {
url: 'http://IP_address/index',
body: {"name": "21312", "year": "2019"}
};
function getApi(data) {
let myInit = {};
myInit.method = "POST";
myInit.body = JSON.stringify(data.body);
myInit.headers = {
'Content-Type': 'application/json'
};
let myRequest = new Request(data.url, myInit);
return fetch(myRequest).then(
res => res.json()
);
}
let response = await getApi(dataRuby);
console.log(response);
})()
从源“空”获取http://IP_address/index处的信息已被CORS策略阻止:请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。