CORS在http-server上失败

时间:2016-03-12 15:40:01

标签: javascript ajax cors

我在开发一个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服务器的最佳方法是什么?

2 个答案:

答案 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