jquery – 缺少CORS头“Access-Control-Allow-Origin”

前端之家收集整理的这篇文章主要介绍了jquery – 缺少CORS头“Access-Control-Allow-Origin”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从我的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>

另一个解决方案是手动将文件复制到您的服务器/域:)

和平与守则;)

猜你在找的jQuery相关文章