javascript - CORS 不适用于 Chrome

标签 javascript jquery google-chrome cors

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

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

错误函数被调用,带有有用的消息“error”。它似乎在发出请求,但没有您期望的任何 header 。如果 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");

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

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

编辑:试试这个(不用你的黑客)看看你是否正在接收数据......

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

关于javascript - CORS 不适用于 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136140/

相关文章:

javascript - Appgyver - 单击时的 JQuery 不适用于动态写入的项目

jquery - Bootstrap 日期选择器显示本地浏览器中的今天日期

javascript - Morris.js - 如何将数据标签添加到条形图

javascript - 如何在没有任何点击的情况下通过浏览器自动完成属性自动填充表单?

javascript - for each 循环在除 firefox 以外的主要浏览器中不起作用

html - 边框 CSS 在谷歌浏览器中不起作用?

javascript - 使 css 数字看起来漂亮

javascript - 为什么 IF 语句会影响一个对象是否被定义?

javascript - 将 UserRecord 对象写入 firestore 文档

javascript - 智能手机设备上的地理定位无法运行