我尝试从 Angular 4 向我的 Laravel 后端发送一个 POST 请求。
我的 LoginService 有这个方法:
login(email: string, password: string) { return this.http.post(`http://10.0.1.19/login`, { email, password }) }
我在我的 LoginComponent 中订阅了这个方法:
.subscribe( (response: any) => { console.log(response) location.reload() }, (error: any) => { console.log(error) })
这是我的 Laravel 后端方法:
... if($this->auth->attempt(['email' => $email, 'password' => $password], true)) { return response('Success', 200); } return response('Unauthorized', 401);
我的 Chrome 开发工具显示我的请求成功,状态码为 200。但是我的 Angular 代码触发了这个error块并给了我这个消息:
error
解析http://10.0.1.19/api/login时的 Http 失败
如果我从后端返回一个空数组,它可以工作......所以Angular试图将我的响应解析为JSON?我怎样才能禁用它?
您可以使用 指定要返回的数据 不是 JSON responseType。
responseType
在您的示例中,您可以使用以下responseType字符串值text:
text
return this.http.post( 'http://10.0.1.19/login', {email, password}, {responseType: 'text'})
选项的完整列表responseType是:
json
arraybuffer
blob
有关更多信息,请参阅文档。