我在开发一个javascript应用程序时使用一个简单的http服务器,其中有几个ajax请求到外部API。我通过CLI使用“http-server --cors”启动服务器,但仍然在请求的资源上出现“No'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配置的解决方案。 node / express是正确定义请求头的唯一方法吗?在开发支持CORS的API调用时,设置本地http服务器的最佳方法是什么?
答案 0 :(得分:1)
这不是您提供的服务器端代码段,而是其在浏览器上运行的客户端代码,因此如果目标API已关闭 cors ,则会发生交叉原始错误,解决方案在这种情况下,将使用代理。
在简单的http服务器上启用cors意味着您允许其他人在其他地方访问您的网站内容。
答案 1 :(得分:-1)
在开发过程中,您可能希望使用允许轻松启用和禁用CORS的浏览器扩展程序,例如适用于Chrome的这个:https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-app-launcher-info-dialog