我正在谈论OPTIONS方法的CORS预检HTTP请求,该方法在实际请求之前由浏览器默认发送。在该请求中是否可以使Orgin标题包含完整的URL路径?
0 00000000
1 00000000
2 00000000
3 0000ffff
4 00000000
5 ffffffff
6 00000000
7 00000000
8 0000ffff
9 ffff0000
我希望我的页面在Origin标头中发送完整的URL。有没有办法欺骗浏览器这样做?
答案 0 :(得分:1)
您始终可以使用以下内容在ajax参数上传递此值:
$.ajax(url, {
fullOrigin: window.location.href
}
)
像#Robby Cornelisse所说 - 大多数服务器都会使用此值保存REFERER服务器变量。
答案 1 :(得分:1)
答案 2 :(得分:0)
不,这是不可能的。根据定义,Origin是URI的方案,域和端口部分。
一种选择是使用请求URI的查询部分将当前文档URI发送到服务器。您可以使用以下代码更改页面上每个跨源请求的URI:
window.addLocation = function( uri ) {
var parser = document.createElement('a');
parser.href = uri;
var and = parser.search ? "&" : "";
parser.search = parser.search + and + "madeBy=" + window.location;
return parser.href;
};
var xhr = new XMLHttpRequest();
xhr.open( "GET", window.addLocation( originalUri ), true );
请注意,当前页面URI可能包含敏感信息,并且该浏览器通过URI(包括查询)识别HTTP缓存条目。
有关详细信息,请查看: