使用自定义HTTP标头发送跨域请求时禁用预检OPTION请求

时间:2013-04-30 15:30:10

标签: ajax http-headers cross-domain option preflight

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

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

这是我的javascript测试代码:

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:11)

不,绝对不可能绕过CORS预检请求。预检请求的存在是为了以安全的方式允许跨域请求。在上面的示例中,您尝试访问google.fr,但google.fr不支持CORS。 Google无法解决此问题,因为Google不支持其网页上的跨域请求。通常,如果您拥有服务器的所有权,那么您的选择是支持CORS,支持JSON-P等替代跨域攻击,或者使用服务器端代理。