来自 IE 或 Firefox 的 CORS 请求中没有 Referer header
No Referer header in CORS request from IE or Firefox
我正在尝试向服务器发送 CORS POST 请求。
在 Chrome 中,这按预期工作 - OPTIONS 预检请求发送到服务器,服务器响应访问控制 headers,发送 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;
});
Chrome中的header如下:
Firefox中的header如下:
有没有办法保证 referrer 将与 OPTIONS 预检请求一起发送?如果没有 - 是否有另一种方法来获取引用 URL 以便我可以添加允许来源 header?
通过使用与预检请求一起发送的 Origin header 解决了这个问题。因此,如果来源 URL 是可接受的主机之一,请添加 access-control-allow-origin header 和来源 url。
我正在尝试向服务器发送 CORS POST 请求。
在 Chrome 中,这按预期工作 - OPTIONS 预检请求发送到服务器,服务器响应访问控制 headers,发送 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;
});
Chrome中的header如下:
Firefox中的header如下:
有没有办法保证 referrer 将与 OPTIONS 预检请求一起发送?如果没有 - 是否有另一种方法来获取引用 URL 以便我可以添加允许来源 header?
通过使用与预检请求一起发送的 Origin header 解决了这个问题。因此,如果来源 URL 是可接受的主机之一,请添加 access-control-allow-origin header 和来源 url。