我试图拦截cookie。这是请求时间表:
POST
请求。302
并添加两个Set-Cookie
标头(用于身份验证)200
回复,但此处不包含Cookie。我可以在任何地方拦截这些Cookie吗?
以下是我发送此请求的两种方式:
WinJS.xhr({
type: 'post',
url: url,
data: token
}).done(
function completed(request) {
// get cookie?
}
);
$.ajax({
url: url,
type: 'post',
data: token,
success: function(data, text, xhr) {
// get cookie?
}
});
答案 0 :(得分:1)
经过一些研究,我发现无法拦截或停止同域重定向。根据{{3}},
Javascript中没有套接字支持。您只能使用XMLHTTPRequest包装器或可选的包装器(如jQuery.ajax)来构建HTTP查询。这是出于各种好的理由,主要是安全性。
所以XMLHTTPRequest
是你能得到的最低价。 this answer告诉我们,我们无法拦截同域重定向永远。答案包含在下面以供参考。
根据This answer(强调补充):
如果响应是HTTP重定向:
如果Location头传送的URL的来源是相同的来源 使用XMLHttpRequest源和 重定向不会违反无限 循环预防措施,透明 观察时遵循重定向 同源请求事件规则。
它们是the W3C standard for the XMLHttpRequest object以供将来发布:
此规范不包括 以下是正在进行的功能 考虑将来的版本 这个规范:
- 要禁用以下重定向的属性;
但considering规范不再提及此问题。