微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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>

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

和平与守则;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐