从 jquery ajax statuscode 401 获取位置重定向 url

Posted

技术标签:

【中文标题】从 jquery ajax statuscode 401 获取位置重定向 url【英文标题】:Get location redirect url from jquery ajax statuscode 401 【发布时间】:2022-01-11 20:56:08 【问题描述】:

我目前有以下代码,需要获取location 参数以重定向到。如何使用 statusCode 设置来获取它?

Ajax 调用

$.ajax(
                url: url,
                data: (def.data ? (def.convertToJson ? JSON.stringify(def.data) : def.data) : ''),
                type: def.type,
                dataType: def.dataType,
                cache: def.cache,
                contentType: def.contentType,
                statusCode: 
 401: function (response) 
                        debugger
                        window.location = GET LOCATION URL FROM RESPONSE
                    

响应参数

response.getAllResponseHeaders()

'access-control-allow-headers: Origin, X-Requested-With, Content-Type, 接受\r\n访问控制允许来源:*\r\n缓存控制: 私有\r\n内容长度:58\r\n内容类型:文本/html\r\n日期:星期一, 格林威治标准时间 2021 年 12 月 6 日 16:51:23\r\n位置: https://localhost:44360/store?storeorganizationid=24917#/login?returnurl=https%3a%2f%2flocalhost%3a44360%2fstore%2faccount%3fstoreorganizationid%3d24917%26_%3d1638809474810\r\n服务器: Microsoft-IIS/10.0\r\nx-aspnet-版本: 4.0.30319\r\nx-aspnetmvc-version: 5.2\r\nx-exposure-server: EastUS2\r\nx-exposure-sport: 篮球\r\nx-powered-by: ASP.NET\r\nx-源文件: =?UTF-8?B?RjpcTXkgV2Vic1xCYXNrZXRiYWxsVG91cm5hbWVudHNcTmV3UmVnaXN0cmF0aW9uXFdlYnNpdGVzXFRvdXJuYW1lbnRzXHN0b3JlXGFjY291bnQ=?=\r\nx-ua 兼容: IE=Edge,chrome=1\r\n'

【问题讨论】:

【参考方案1】:

这将获得该值:

response.split('location:')[1].split("\r\n")[0];

let response = 'access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept\r\naccess-control-allow-origin: *\r\ncache-control: private\r\ncontent-length: 58\r\ncontent-type: text/html\r\ndate: Mon, 06 Dec 2021 16:51:23 GMT\r\nlocation: https://localhost:44360/store?storeorganizationid=24917#/login?returnurl=https%3a%2f%2flocalhost%3a44360%2fstore%2faccount%3fstoreorganizationid%3d24917%26_%3d1638809474810\r\nserver: Microsoft-IIS/10.0\r\nx-aspnet-version: 4.0.30319\r\nx-aspnetmvc-version: 5.2\r\nx-exposure-server: EastUS2\r\nx-exposure-sport: Basketball\r\nx-powered-by: ASP.NET\r\nx-sourcefiles: =?UTF-8?B?RjpcTXkgV2Vic1xCYXNrZXRiYWxsVG91cm5hbWVudHNcTmV3UmVnaXN0cmF0aW9uXFdlYnNpdGVzXFRvdXJuYW1lbnRzXHN0b3JlXGFjY291bnQ=?=\r\nx-ua-compatible: IE=Edge,chrome=1\r\n'

let loc = response.split('location:')[1].split("\r\n")[0];
console.log(loc);

【讨论】:

以上是关于从 jquery ajax statuscode 401 获取位置重定向 url的主要内容,如果未能解决你的问题,请参考以下文章

在 Firefox 的 jQuery $ajax 调用中使用 xhrFields: withCredentials: true 时的状态码 = 0

Django - Ajax - 参数

更改 ajax 请求的 response.statuscode 会引发错误“发送 HTTP 标头后服务器无法设置状态”

jquery 判断 访问页面是否存在 即404

$.ajax({}) 中的data的设置

.NET (ApiController) / jQuery .ajax:从 POST 返回啥?