ajax - 为什么 Chrome 取消 CORS OPTION 请求

标签 ajax google-chrome cors

在我的应用程序中,我正在创建从 HTTP 到 HTTPS 的 AJAX 请求。这意味着我需要 CORS。因此,我向 jQuery.ajax 添加了一些 header 和参数并对其进行了测试。在 Firefox 中一切正常,但在 Chrome 中不行。 Chrome“杀死”每个预检请求(选项)。

jQuery 脚本:

$(document).on('click', 'a.ajax', function(e) {
    e.preventDefault();
    $.ajax(this.href, {
        type: 'GET',
        dataType: 'json',
        crossDomain: false,
        headers: {'X-Requested-With': 'XMLHttpRequest'},
        xhrFields: {
            withCredentials: true
        }
    });
    return false;
});

HTTP转储:
> OPTIONS /foo HTTP/1.1
> User-Agent: curl/7.29.0
> Host: local.bar.cz
> Accept: */*
> Access-Control-Request-Headers:accept, origin, x-requested-with
> Access-Control-Request-Method:GET
> Origin:http://local.bar.cz
> 
< HTTP/1.1 204
< Server: nginx/1.2.7
< Date: Wed, 27 Feb 2013 15:06:54 GMT
< Content-Type: text/html; charset=utf-8
< Connection: keep-alive
< X-Powered-By: Nette Framework
< X-Frame-Options: SAMEORIGIN
< Access-Control-Allow-Origin: http://local.bar.cz
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: accept, origin, x-requested-with
< Access-Control-Allow-Methods: OPTIONS, GET, POST, HEAD
< 

有谁知道为什么 chrome 会终止这个请求?

最佳答案

也许您的 https 服务器有一个不受信任的证书。如果是这样,请先尝试使用浏览器访问该 URL,然后接受不受信任的连接。

关于ajax - 为什么 Chrome 取消 CORS OPTION 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115746/

相关文章:

rest - RESTful API 是否随时都需要 CORS 实现?

javascript - AWS 控制台中的 CORS 配置不起作用

javascript - 从 PHP 和 AJAX 保存文本文件

php - php-ajax 表单提交后不显示 Bootstrap 警报

google-chrome - 如何使用 Chrome 的新 `console.log()` 输出?

html - 如何在选择时更改/删除表单边框颜色?(Chrome)

python-2.7 - 如何在 Chrome 中使用 Selenium + Python 绑定(bind)控制文件的下载

javascript - CORS 支持 dl.dropboxuserconent.com?

php - 使用 jquery 将值从文本框传递给 php 不起作用,请帮忙

javascript - 如何在屏幕最后显示最近上传的图片?