gpt4 book ai didi

angular - 在响应中获取状态零而不是 401

转载 作者:行者123 更新时间:2023-12-03 21:29:46 30 4
gpt4 key购买 nike

我正在向需要身份验证的服务发送请求,由于我当前的状态不是,我收到了 401 响应。我想看看我是否可以在我的代码中处理这个问题,在客户端并用 Typescript 编写:

this.http.post(url, body, options).catch(e => {
if (e.status === 401) {
//Handle 401
}
return Observable.throw(e);
});

但问题是 e.status即使从网络面板我可以看到响应的状态实际上是 401,它也为零。这是 Angular 的问题还是我做错了什么?

这是 JSON.strigify(e) 的返回值:
{
"_body": { "isTrusted": true },
"status": 0,
"ok": false,
"statusText": "",
"headers": {},
"type": 3,
"url": null
}

顺便说一句,我使用的是 Angular 4.0.0(核心和 http)。

由于上面发送的发布请求,这是我在控制台中遇到的错误:
(2) POST http://192.168.2.10:8080/test 401 ()
XMLHttpRequest cannot load http://192.168.2.10:8080/test. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.2.10:4200' is therefore not allowed access. The response had HTTP status code 401.

另一个谜团是控制台上报告了 2 个 post 请求错误,而根据网络面板仅发送了一个。

最佳答案

如果您想知道您的服务的错误状态

 import { Injectable } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/catch';



@Injectable()
export class ExampleService {

headers: Headers;

constructor(private http: Http) {
this.headers = new Headers();
this.headers.append('Content-Type', 'application/json; charset=utf-8');
this.headers.append('Accepts', '*/*');
// this.headers.append()
}

service1() {

let url = 'http://example.com/products';
return this.http.get(url, this.headers).map((resp: Response) => {
console.log('resp status', resp.status);
return resp.json();
}).catch((resp: Response) => {
let details = resp.json();
console.log(resp.status); // here you get the error code in your case 401
return Observable.throw(details);
});
}
}

在示例中,动词 http 是 GET,您可以尝试使用 POST,这是相同的想法。

我希望它能帮助你

关于angular - 在响应中获取状态零而不是 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764968/

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