11

我刚刚发现我的浏览器在尝试使用自定义 http 标头进行跨域 ajax 调用时发送了一个额外的“OPTION”请求。我认为它被称为“预检请求”。

是否可以禁用此功能并仅发送初始请求?

这是我的 javascript 测试代码:

$(document).ready(function() {
    $.ajax({
        url: "http://google.fr",
        crossDomain: true,
        headers: {
            "X-custom-parameter": true
        }
    });
});

感谢您的帮助!

4

1 回答 1

13

不,绝对不可能绕过 CORS 预检请求。预检请求的存在是为了以安全的方式允许跨域请求。在上面的示例中,您尝试访问 google.fr,但 google.fr 不支持 CORS。谷歌没有办法解决这个问题,因为谷歌在其网页上不支持跨域请求。一般来说,如果您拥有服务器的所有权,您的选择是支持 CORS、支持替代的跨域黑客(如 JSON-P)或使用服务器端代理。

于 2013-05-02T02:09:03.040 回答