我在开发一个JavaScript应用程序时使用了一个简单的http服务器,该应用程序中有多个对外部API的ajax请求。我通过CLI使用“ http-server --cors”启动服务器,但仍然收到“请求资源上没有'Access-Control-Allow-Origin'标头”错误。无论外部API是否需要用户密钥/预检,都会发生这种情况,例如:
var url = "http://api.rgrta.com/";
$.ajax({
url: url,
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("api_key","d4f...3f5");
},
type: "GET",
dataType: "json"
})
.done(function(jsonData) {
console.log("*** ajax success ***");
callbackFunc();
function callbackFunc() {
console.log("callbackFunc");
}
});
我看过涉及快速app.js配置的解决方案。节点/表达式是否是正确定义请求标头的唯一方法?在开发支持CORS的API调用时,设置本地http服务器的最佳方法是什么?
最佳答案
那不是您提供的服务器端代码段,而是在浏览器上运行的客户端代码段,因此如果目标api的cors关闭,则会发生跨源错误,在这种情况下,解决方案是使用代理。
同时在简单的http服务器上启用cors意味着您允许他人在其他地方访问您的网站内容。
关于javascript - http服务器上的CORS失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35959676/