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-Origin
和 same 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请求