我正在尝试向服务器发送 CORS POST 请求。
在 Chrome 中,这按预期工作 - OPTIONS 预检请求被发送到服务器,服务器用访问控制 header 响应,POST 请求被发送。当我尝试在 IE 或 Firefox 中执行此操作时,没有随 OPTIONS 请求发送引用,因此我无法添加 access-control-allow-origin header (因为这是通过编程完成的)。
Javascript 是:
$.ajax({
url: $(this).attr('href'),
type: 'POST',
xhrFields: {
withCredentials: true,
},
contentType: 'application/json; charset=utf-8;',
data: JSON.stringify(data),
success: function (response) {
alert(response);
},
});
return false;
});
有没有办法保证 referrer 将与 OPTIONS 预检请求一起发送?如果没有 - 是否有另一种方法来获取引用 URL,以便我可以添加 allow origin header ?
最佳答案
通过使用与预检请求一起发送的 Origin header 解决了这个问题。因此,如果 Origin URL 是可接受的主机之一,请添加带有原始 URL 的 access-control-allow-origin header 。
关于javascript - 来自 IE 或 Firefox 的 CORS 请求中没有 Referer header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184696/