gpt4 book ai didi

javascript - 如何处理 Angular 2中的302

转载 作者:太空狗 更新时间:2023-10-29 17:55:15 26 4
gpt4 key购买 nike

我收到错误状态 302但是在尝试记录 catch 中的错误时,我得到了 200

post(url, data, successCallBack, errCallback) {
return this.http.post(apiDomain + url, JSON.stringify(data), {
headers: this.headers
}).catch(this.handleError).subscribe(
(res) => {
successCallBack(res.json());
},
(err) => {
errCallback(err);
}
);
}

private handleError(error: any) {
let errMsg = (error.message) ? error.message :
error.status;
console.log(error.status); // log is 200
console.log(error)
console.error(errMsg);
return Observable.throw(errMsg);
}

要求我想发送另一个关于重定向 URL 重定向的帖子调用。如何获取重定向 URL。

需要帮助。

最佳答案

我知道迟到的答案,但对于任何遇到这个问题的人来说。

简短的回答是你不能,因为浏览器本身会处理 302,并且不会告诉 Angular 任何相关信息。您可以做的是设置一个拦截器样式类来监视正在发生的事情。

Google for angular2 http interceptor 或类似的,它比上面的示例更强大,可以监视每个 XHR 连接。一个例子在这里:

https://www.illucit.com/blog/2016/03/angular2-http-authentication-interceptor/

现在允许的是任何连接都将通过您的拦截器。由于我们无法监控 302,因此我们必须考虑可能发生的情况。例如,在我的示例中,请求突然将 url 更改为包含我的身份验证的内容。

太好了,所以我的第一个伪代码是:

if (response.url.contains('my-auth string')) {
redirect....
}

我还可以在标题上看到我突然转到 text/html 而不是 application/json。嗯,这是我可以检查的另一个变化:

if (response.url.contains('my-auth string') && response.headers['content-type'] == 'text/html') {
redirect....
}

您可能还有其他可以检查的参数,但这些参数足以为我检测重定向。不可否认,这是关于被重定向到登录而不是另一个例子,希望你得到足够的明显变化检查你来决定你是否有一个 302。

关于javascript - 如何处理 Angular 2中的302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com