NativeScript - 使用 NotFound() 上的补丁未从后端获得任何响应
NativeScript - Not getting any response from back-end with patch on NotFound()
在我的后端,我在该操作中得到了两个可能的响应。
第一个:
return Ok(new { Message = "email_confirmed" });
第二个:
return NotFound();
在我的前端我得到了这个:
let url: string = "http://10.0.2.2:53286/api/Home/AccountValidation?codeActivation=" + this.code;
this.http.patch(url, {
}).subscribe((res) => {
console.log(JSON.stringify(res));
if(res.status != 404) {
alert({title: "Sistema 3 Esferas", message: "¡Tu cuenta ha sido activada satisfactoriamente! :)", okButtonText: "¡Entendido!"});
this.router.navigate(["/Miembro"]);
} else {
this.btnEnabled = true;
alert({title: "Sistema 3 Esferas", message: "Has introducido un código inválido. :(", okButtonText: "Entiendo..."});
}
});
如果 后端 到达 Ok()
,则 if
被执行并且一切正常。
但是,如果我的 back-end 到达第二个 return,即 NotFound()
,则什么也不会发生。你在 subscribe()
的开头看到这个 log
?
console.log(JSON.stringify(res));
好吧,如果 NotFound()
是 returned,那么日志中不会显示任何内容。这几乎就像从未执行过订阅一样。
为什么会这样?
您需要添加捕获处理程序来捕获除 200(OK)
之外的所有其他响应,因为它们被视为错误,就像这样 -
this.http.patch(url, {
}).subscribe((res) => {
console.log(JSON.stringify(res));
alert({title: "Sistema 3 Esferas", message: "¡Tu cuenta ha sido activada satisfactoriamente! :)", okButtonText: "¡Entendido!"});
this.router.navigate(["/Miembro"]);
}).catch(this.handleError);
};
private handleError(error: any) {
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg);
this.btnEnabled = true;
alert({title: "Sistema 3 Esferas", message: "Has introducido un código inválido. :(", okButtonText: "Entiendo..."});
}
有关详细信息,请参阅 this。
在我的后端,我在该操作中得到了两个可能的响应。
第一个:
return Ok(new { Message = "email_confirmed" });
第二个:
return NotFound();
在我的前端我得到了这个:
let url: string = "http://10.0.2.2:53286/api/Home/AccountValidation?codeActivation=" + this.code;
this.http.patch(url, {
}).subscribe((res) => {
console.log(JSON.stringify(res));
if(res.status != 404) {
alert({title: "Sistema 3 Esferas", message: "¡Tu cuenta ha sido activada satisfactoriamente! :)", okButtonText: "¡Entendido!"});
this.router.navigate(["/Miembro"]);
} else {
this.btnEnabled = true;
alert({title: "Sistema 3 Esferas", message: "Has introducido un código inválido. :(", okButtonText: "Entiendo..."});
}
});
如果 后端 到达 Ok()
,则 if
被执行并且一切正常。
但是,如果我的 back-end 到达第二个 return,即 NotFound()
,则什么也不会发生。你在 subscribe()
的开头看到这个 log
?
console.log(JSON.stringify(res));
好吧,如果 NotFound()
是 returned,那么日志中不会显示任何内容。这几乎就像从未执行过订阅一样。
为什么会这样?
您需要添加捕获处理程序来捕获除 200(OK)
之外的所有其他响应,因为它们被视为错误,就像这样 -
this.http.patch(url, {
}).subscribe((res) => {
console.log(JSON.stringify(res));
alert({title: "Sistema 3 Esferas", message: "¡Tu cuenta ha sido activada satisfactoriamente! :)", okButtonText: "¡Entendido!"});
this.router.navigate(["/Miembro"]);
}).catch(this.handleError);
};
private handleError(error: any) {
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg);
this.btnEnabled = true;
alert({title: "Sistema 3 Esferas", message: "Has introducido un código inválido. :(", okButtonText: "Entiendo..."});
}
有关详细信息,请参阅 this。