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

Sal*_*lah 10 ajax cross-domain option http-headers preflight

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

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

这是我的javascript测试代码:

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

谢谢你的帮助!

mon*_*sur 11

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