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

前端之家收集整理的这篇文章主要介绍了ajax – 为什么Chrome取消CORS OPTION请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我创建了从HTTP到HTTPS的AJAX请求。这意味着我需要CORS。所以我添加一些标题和参数到jQuery.ajax并进行测试。在Firefox中,所有功能都可以正常工作,但Chrome中没有。 Chrome“kill”每个失效请求(OPTIONS)。

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,x-requested-with
< Access-Control-Allow-Methods: OPTIONS,GET,POST,HEAD
<

任何人知道为什么Chrome杀死这个请求?

也许您的https服务器具有不可信证书。如果是这样,请尝试首先使用浏览器访问URL,并接受不可信的连接。

猜你在找的Ajax相关文章