我刚刚发现我的浏览器在尝试使用自定义http标头进行跨域ajax调用时发送了额外的“OPTION”请求。 我认为它被称为“预检请求”。
是否可以禁用此功能并发送初始请求?
这是我的javascript测试代码:
$(document).ready(function() {
$.ajax({
url: "http://google.fr",
crossDomain: true,
headers: {
"X-custom-parameter": true
}
});
});
感谢您的帮助!
答案 0 :(得分:11)
不,绝对不可能绕过CORS预检请求。预检请求的存在是为了以安全的方式允许跨域请求。在上面的示例中,您尝试访问google.fr,但google.fr不支持CORS。 Google无法解决此问题,因为Google不支持其网页上的跨域请求。通常,如果您拥有服务器的所有权,那么您的选择是支持CORS,支持JSON-P等替代跨域攻击,或者使用服务器端代理。