从 jquery ajax 状态码 401 获取位置重定向 url
Get location redirect url from jquery ajax statuscode 401
我目前有以下代码,需要获取要重定向到的 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,
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'
这将获得该值:
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);
我目前有以下代码,需要获取要重定向到的 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, 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'
这将获得该值:
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);