将ajax调用转换为CORS

时间:2015-05-14 05:26:25

标签: javascript jquery ajax json cors

我正在尝试使用以下代码通过我的localhost访问API:

  $.ajax({
            url: "http://domain.xxx.net/api/tokens.json?email=xxx@xxx.net&password=xxx",
            //method: "GET",
            headers: { "Accept": "application/xml", "Content-Type": "application/xml", "Access-Control-Allow-Origin": "*"},
            dataType: "JSON",
            success:function(data){
                alert(data);},
            success:function(e){
                alert(e.message);}

    });

我已经通过互联网阅读,由于下面的错误,这是不可能的。

  

否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。

经过一些研究后,据说我可以使用JSONP或CORS。我能够使用JSONP但是我得到了一个js错误,因为API只支持JSON和amp; XML而不是JSONP。现在我试图将我的ajax调用转换为CORS,但我根本无法理解语法。关于' Access-Control-Allow-Origin'。

,我总是得到同样的错误

我希望有人可以帮我翻译这个。谢谢。

3 个答案:

答案 0 :(得分:0)

Access-Control-Allow-Origin应该在响应头中。它听起来是您尝试从中获取数据的服务器未启用CORS(设置Access-Control-Allow-Origin的响应头)。如果是这种情况,我认为您无法通过Javascript获取资源。你需要从后端做到这一点。

答案 1 :(得分:0)

您无法通过浏览器执行此操作。你需要从后端做到这一点。如果您想使用javascript,可以使用NodeJS

答案 2 :(得分:0)

对于那些想要访问跨域以进行测试的人。可能的解决方法是禁用浏览器的Web安全性。

对于Chrome用户:关闭所有浏览器的会话,然后在终端中运行以下命令:

open -a Google\ Chrome --args --disable-web-security

希望这个有所帮助。