浏览器处理401状态

时间:2014-01-16 12:57:29

标签: jquery json http status http-status-code-401

我一直在研究一个基本上与服务器通过json api进行交互的应用程序(不是CORS请求,请注意你只是简单地向服务器请求接受json格式的ajax请求)

现在我有这个功能,如果他/她的令牌/会话过期我需要注销用户,我处理这个问题的方法如果发生这种情况,我会在响应头中呈现 401 状态(令牌/会话已过期)

现在我无法理解的是,我呈现 401 状态我有点被重定向到当前位置

http://localhost:4005/payouts

在Chrome网络标题上,我看到了这个

https://www.dropbox.com/s/vxv9ih0s0r7vumy/Screenshot%202014-01-16%2018.04.46.png

警告:显示临时标题

首先,我向我看,它的chrome指定的东西,但我看到在Firefox中也发生了同样的事情

这是一个标准行为我甚至通过文档(RFC)了解了Web浏览器如何处理 401 状态代码并且说实话我无法找到任何提及事实的地方如果不满足某些挑战,它们就会发生重定向

只是情侣更多的要求是   1. Ajax请求+ JSON请求(不是CORS请求)   2.下面是我的Request / Response标题

请求标题

Request URL:http://localhost:4005/payouts/mark_as_paid.json
Request Method:GET
Status Code:401 Unauthorized
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:1709
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:_minerva_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJWI2N2MyNDg5MTg5YjEzNmM2MGM2ZDM2MTNlYWEyNzc3BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMVN3b3JvVTJCZzFkaU1xOWhKeTU0c2hPT2F6dVZzOEhvdStMWml1QUNQUW89BjsARkkiEWFjY2Vzc190b2tlbgY7AEZJIkVlMGVmODM3OGMxZDBlYTRmNGFiYTRhMzcyZGFkMGZiYzBlYTI5NGNkODYxOTRhOTk1NTYwYTA0MzliYTgyY2JmBjsAVEkiHHdhcmRlbi51c2VyLmRlZmF1bHQua2V5BjsAVFsHSSIJVXNlcgY7AEZACw%3D%3D--93e6c7c38e4798ca3a1fbe15485a22eba3f358a9
Host:localhost:4005
Origin:http://localhost:4005
Referer:http://localhost:4005/payouts
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36
X-Requested-With:XMLHttpRequest

响应标题

Cache-Control:no-cache
Connection:close
Content-Type:application/json; charset=utf-8
Server:thin 1.6.1 codename Death Proof
Set-Cookie:_minerva_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJWI2N2MyNDg5MTg5YjEzNmM2MGM2ZDM2MTNlYWEyNzc3BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMVN3b3JvVTJCZzFkaU1xOWhKeTU0c2hPT2F6dVZzOEhvdStMWml1QUNQUW89BjsARkkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsAOgxAY2xvc2VkRjoNQGZsYXNoZXN7BjoKYWxlcnRJIhNUb2tlbiBleHBpcmVkIQY7AFQ6CUBub3cw--a09dddd474e1201fec156c47d298e3189b6a4451; path=/; HttpOnly
X-Request-Id:be146be842651831d3903ab0db99bc5e
X-Runtime:0.016927
X-UA-Compatible:IE=Edge

JSON响应数据

{"error":"Token expired!"}

1 个答案:

答案 0 :(得分:0)

401响应并不意味着任何类型的重定向。

(相关规范btw为http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p7-auth-25.html