【问题标题】:CORS jQuery AJAX requestCORS jQuery AJAX 请求
【发布时间】:2013-12-24 21:50:11
【问题描述】:

我在处理 ajax 请求时遇到了问题。我收到了错误

No 'Access-Control-Allow-Origin' header is present on the requested resource.

所以我尝试的是这个 jQuery ajax 请求:

var request = $.ajax({
    type: 'GET',
    url: url,
    dataType: "json",
    xhrFields: {
        withCredentials: true
    }
});
request.done(function(data){
    console.log(data);
});    

但它仍然无法正常工作。我仍然收到错误消息。

我应该如何解决这个问题?

【问题讨论】:

  • API 是否服务于jsonp
  • 我应该解决这个问题{"ticker":{"high":0.00061,"low":0.00045,"avg":0.00053,"vol":2284.80958,"vol_cur":4421342.40061,"last":0.00051,"buy":0.00052,"sell":0.00051,"updated":1386427668,"server_time":1386427668}}
  • 这是一个跨域请求问题...google Access-Control-Allow-Originsame origin policy。如果 API 不服务jsonp 将需要使用服务器代理来获取数据

标签: jquery ajax request cors


【解决方案1】:

很简单,你应该先设置服务器http响应头。 问题不在于您的前端 javascript 代码。您需要返回此标头:

Access-Control-Allow-Origin:*

Access-Control-Allow-Origin:your domain

Apache config files中,代码是这样的:

Header set Access-Control-Allow-Origin "*"

在nodejs中,代码是这样的:

res.setHeader('Access-Control-Allow-Origin','*');

【讨论】:

  • 谢谢!!特别是对于节点 js 代码,它工作得很好。有没有办法默认设置标题而不是在每个 post/get 处理程序中设置它?
  • 我在我的一个应用程序上遇到了这个问题,问题实际上不在于服务器端 - 我完全是 POST 到错误的 URL。
猜你喜欢
  • 2015-12-15
  • 2013-12-06
  • 2015-02-27
  • 2014-09-13
  • 2013-06-20
  • 1970-01-01
  • 2015-09-29
相关资源
最近更新 更多