CORS jQuery AJAX 请求

Posted

技术标签:

【中文标题】CORS jQuery AJAX 请求【英文标题】:CORS jQuery AJAX request 【发布时间】: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 将需要使用服务器代理来获取数据 【参考方案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 处理程序中设置它? 见***.com/questions/7067966/… 我在我的一个应用程序上遇到了这个问题,问题实际上不在于服务器端 - 我完全是 POST 到错误的 URL。

以上是关于CORS jQuery AJAX 请求的主要内容,如果未能解决你的问题,请参考以下文章

javascript 用于CORS请求的jQuery.ajax()方法的Flickr API请求

使用 jQuery Ajax 和 PHP 的 CORS 请求

Bottle Py:为 jQuery AJAX 请求启用 CORS

jQuery+ASP.NET MVC基于CORS实现带cookie的跨域ajax请求

如果修改 XHR,则 JQuery AJAX 请求失败并出现 CORS 错误

CORS - jQuery 获取 ajax 响应状态失败