【发布时间】:2019-03-12 17:23:32
【问题描述】:
我有一段简单的代码。
let body = new FormData();
body.set("a", true);
body.set("username", this.user);
body.set("password", this.password);
let headers = new HttpHeaders();
headers.set("Content-Type", 'application/x-www-form-urlencoded')
console.log("about to post");
this.http.post("/endpoint", body, {headers: headers}).subscribe(
(result) => { console.log("success", result); /*extra code*/},
(error) => { console.log("error", error); /*extra code*/ },
() => { console.log("Complete"); /*extra code*/ });
这是一个非常简单的订阅。
所以我做了一个发布请求,它抛出了一个 401 错误网络请求。我注意到的问题是控制台会说
about to post
POST [url] 401 (Unauthorized)
Complete
它不执行错误功能。
在构造函数中http定义为:private http: HttpClient
所以我有点难以理解为什么它无法抛出错误。有什么东西不能工作吗?我正在查看类似的帖子,例如 Catching errors in Angular HttpClient,我认为我正在关注关于订阅的帖子。
在请求成功时,它调用成功就好了。
编辑 我查看了更多代码,并认为可能是数据或标题错误。所以我要在上面更新它们。似乎传递的数据看起来不对,所以我将其更新为表单数据。我穿过端点,直到它遇到一个 throw new Exception("Authorization Error"),但它从不调用错误函数。也许我在发布请求的定义中缺少一些东西?也许是因为我没有正确设置某些东西而导致内部出现问题?
【问题讨论】:
-
@DanielGimenez 我正在使用谷歌浏览器
-
你有没有机会拦截响应?
-
@MikNiller 让我补充一下我的问题。我确实注意到打嗝了。
-
@MikNiller 我在想正文发生了变化,或者标题不正确?在端点中,它按设计工作,我看到了所有数据,但是当发生异常时,它无法执行。我应该设置另一个选项吗?
标签: angular typescript httpclient