我从我的asp.net窗体中调用这个函数,并在调用ajax时在firebug控制台上获得以下错误。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at 07000. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
var url= 'http://anotherdomain/test.json'; $.ajax({ url: url,crossOrigin: true,type: 'GET',xhrFields: { withCredentials: true },accept: 'application/json' }).done(function (data) { alert(data); }).fail(function (xhr,textStatus,error) { var title,message; switch (xhr.status) { case 403: title = xhr.responseJSON.errorSummary; message = 'Please login to your server before running the test.'; break; default: title = 'Invalid URL or Cross-Origin Request Blocked'; message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your server.'; break; } });
注意:我没有服务器端权限(API / URL)更改。
解决方法
当您尝试访问其他域的资源时,通常会发生这种情况。
这是一个安全功能,可避免每个人都可以自由访问该域的任何资源(例如,可以访问这些资源,以在海盗域上拥有完全相同的网站副本)。
当代码发送请求时,您的浏览器控制台中将有一个“200 OK”响应代码,这意味着该资源被访问,但它没有授予共享该资源的权限。它通过不允许“访问控制允许原点”来实现。
要更改,您必须在请求的域文件(notyourdomain.com)的.htaccess中写入:
<IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>
和平与守则;)