Browser 是否有任何浏览器实现在ajax请求中使用源标题中的完整url路径?
我说的是通过OPTIONS方法发出的CORS飞行前HTTP请求,默认情况下,浏览器会在实际请求之前发送该请求。在该请求中,是否可以使Orgin头包含完整的url路径Browser 是否有任何浏览器实现在ajax请求中使用源标题中的完整url路径?,browser,xmlhttprequest,Browser,Xmlhttprequest,我说的是通过OPTIONS方法发出的CORS飞行前HTTP请求,默认情况下,浏览器会在实际请求之前发送该请求。在该请求中,是否可以使Orgin头包含完整的url路径 OPTIONS / HTTP/1.1 Host: example.com Origin: http://www.example.com/blah 我希望我的页面在源标题中发送完整的url。有什么方法可以欺骗浏览器这样做吗?您可以使用以下方法在ajax参数上传递此值: $.ajax(url, { fullOrigin
OPTIONS / HTTP/1.1
Host: example.com
Origin: http://www.example.com/blah
我希望我的页面在源标题中发送完整的url。有什么方法可以欺骗浏览器这样做吗?您可以使用以下方法在ajax参数上传递此值:
$.ajax(url, {
fullOrigin: window.location.href
}
)
正如Robby Cornelisse所说,大多数服务器都会使用此值保存REFERER server变量。您始终可以使用以下方法在ajax参数上传递此值:
$.ajax(url, {
fullOrigin: window.location.href
}
)
正如Robby Cornelisse所说,大多数服务器都会使用此值保存REFERER server变量。浏览器会发送一个
REFERER
头,其中包含AJAX请求的完整URL
在下面的屏幕截图中,我只是使用控制台从这个页面发送了一个AJAX请求。请注意Referer标题
浏览器将发送一个
REFERER
标题,其中包含AJAX请求的完整URL
在下面的屏幕截图中,我只是使用控制台从这个页面发送了一个AJAX请求。请注意Referer标题
不,这是不可能的。根据定义,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缓存条目
有关更多信息,请查看:
- 关于MDN
- 在HTTP 1.1规范中
- 作者:jlong
- 关于MDN
不,这是不可能的。根据定义,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缓存条目
有关更多信息,请查看:
- 关于MDN
- 在HTTP 1.1规范中
- 作者:jlong
- 关于MDN
REFERER
(sic)头吗?@RobbyCornelissen看到了新的描述。在我看来,这是不可能的。至于REFERER头,你不能依赖它。用户可以选择让浏览器不发送它(也可以禁止document.Referer),在许多其他情况下,它可能是空的,并且在支持Referer策略的浏览器中,作者还可以使Referer头为空,而不是Referer
(原文如此)默认发送的标题?@RobbyCornelissen看到了新的描述。在我看来,这是不可能的。至于Referer标题,你不能依赖它。用户可以选择让他们的浏览器不发送它(也可以抑制document.Referer),在许多其他情况下,它可能为空,并且在支持Referer策略的浏览器中,作者还可以使Referer头为空,请参见新的描述。jQuery.ajax()中的第二个参数
是设置对象。没有fullOrigin
键,jQuery将忽略它及其值。有关更多信息,请参阅。请参阅新的说明。jQuery.ajax()
中的第二个参数是设置对象。没有fullOrigin
键,jQuery将忽略它及其值。有关详细信息,请参阅@t6chgeek我在发布前已注销。还是删除了它们。@t6chgeek我在发布前已注销。不管怎样,我还是把它们拿走了。