CORS 不适用于 Chrome

2024-02-12

我已经在服务器上设置了跨源资源共享(使用 CrossOriginFilter 的 Jetty),它在 IE8 和 Firefox 上完美运行。在 Chrome 上,它只是……没有。

  $.ajax({ url : crossOriginURL,
    type : "GET",
    error : function(req, message) {
        alert(message);
    },
    dataType :  "json" } );

错误函数被调用,并带有有用的消息“错误”。它似乎正在发出请求,但没有任何您期望的标头。如果 URL 来自同一来源,则可以正常工作。


我这样解决了我的问题:

将其添加到您的 PHP 代码中:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");

或者将这些标头添加到您的响应中。

问题:浏览器在您的主要请求之前向服务器询问选项,以检查站点是否有允许与不同来源进行通信的选项,如果是,则它们执行您的 POST 或 GET 请求。

EDIT:尝试这个(没有你的黑客)看看你是否正在接收数据......

$.ajax({ url : crossOriginURL,
    type : "GET",
    error : function(req, message) {
        alert(message);
    },
    success : function(data) {
        alert(data);
    },
    dataType :  "text"} );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CORS 不适用于 Chrome 的相关文章