【发布时间】:2021-06-25 18:55:24
【问题描述】:
我的任务是连接到一个旧的 php 登录 api,它只返回一个成功或错误消息响应对象。
当我使用正确的凭据连接时,我会收到成功对象,而当我没有收到错误时。太好了!
但是,httpClient 似乎没有识别错误对象。因此,无论是否成功,该对象都被接受为成功的响应对象。
两行相关的php代码:
$response = array("error" => "Combinación user-pass errónea", "success" => false, "status" => 500, "message" => "Error");
echo $json_response = safe_json_encode($response);
然后我在错误响应中添加了几个属性,希望它被识别:
$response = array("error" => "Combinación user-pass errónea", "success" => false, "status" => 403, "message" => "Error");
运气不好……
然后,我将 observable 转换为 Promise,以使该过程尽可能接近使用相同登录 api 的 AngularJS 应用程序上使用的代码:
let httpOptions = {
headers: new HttpHeaders(
{ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }),
};
let params = new HttpParams({
fromObject: { action: "login", username: credentials.username, password: credentials.password },
});
this.httpClient.post(`http://xxxxxxxxxxx/user_controller.php`, params.toString(), httpOptions).toPromise()
.then( data => console.log(data),
err => console.log(err) );
仍然没有运气......
【问题讨论】:
-
“但是,httpClient 似乎没有识别错误对象。”您是否设置了 HTTP 响应代码以指示错误情况?
标签: php angular httpclient