我试图从Angular 4向我的Laravel后端发送一个POST请求.

我的登录服务有以下方法:

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块,给了我这个信息:

解析过程中Http失败http://10.0.1.19/api/login

如果我从后端返回一个空数组,它会工作...那么Angular试图将我的响应解析为JSON?我怎样才能禁用它?

推荐答案

您可以使用responseType指定要返回的数据是not JSON.

在您的示例中,可以使用responseType字符串值text,如下所示:

return this.http.post(
    'http://10.0.1.19/login',
    {email, password},
    {responseType: 'text'})

responseType个选项的完整列表如下:

  • json(默认值)
  • text
  • arraybuffer
  • blob

更多信息请参见docs.

Typescript相关问答推荐

如何声明循环数组类型?

为什么空对象可以将类型断言为任何内容?

Typescript:假设foo不在类型栏中,而它在:如何调试

之间是否有区别:例如useEffect()React.useEffect()

如何在类型脚本中声明对象其键名称不同但类型相同?

React-Native运行方法通过监听另一个状态来更新一个状态

如何为ViewContainerRef加载的Angular组件实现CanDeactivate保护?

类型安全JSON解析

类型脚本强制泛型类型安全

Express Yup显示所有字段的所有错误

如何创建一家Reduxstore ?

寻址对象中路径的泛型类型

RXJS将对键盘/鼠标点击组合做出react

在Cypress中,是否可以在不标识错误的情况下对元素调用.Click()方法?

在Cypress中,您能找到表格中具有特定文本的第一行吗?

界面中数组中的混合类型导致打字错误

顶点堆叠的图表条形图未在正确的x轴上显示

如何从抽象类的静态方法创建子类的实例?

如何在TypeScript中将元组与泛型一起使用?

基于参数的 TS 返回类型