当前位置: 首页 > 知识库问答 >
问题:

角度HttpClient“解析期间Http失败”

郗阳德
2023-03-14

我尝试从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代码触发了错误块,并给我这个消息:

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

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

共有3个答案

韩弘壮
2023-03-14

即使添加响应类型,我也处理了几天,但没有成功。终于我明白了。确保在后端脚本中没有将标头定义为-("Content-Type: Application/json);

因为如果您将其转换为文本,但后端请求json,它将返回一个错误。。。

温星华
2023-03-14

如果你有选择的话

return this.http.post(`${this.endpoint}/account/login`,payload, { ...options, responseType: 'text' })
乐修远
2023-03-14

您可以指定要返回的数据不是JSON,使用响应类型

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

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

响应类型的完整选项列表是:

  • json(默认值)
  • 文本
  • arraybuffer
  • blob

有关更多信息,请参阅文档。

 类似资料:
  • 这段代码在leapdroid中工作得很好,但我得到了错误模拟器: 我的代码是:

  • 我在使用Android Studio构建应用程序时遇到了这个错误。APK已经编译好了,但是当我尝试在Android P模拟器上运行该应用程序时,它会崩溃并抛出以下错误。详情请参阅附件: 这是我的建筑.等级档案。如果有人对问题可能是什么提出建议,我将不胜感激。多谢。

  • 尝试从Angular 8应用程序调用服务时出错。服务内容如下: 下面是Java rest api(从浏览器调用时工作正常): 我在chrome控制台中发现错误: 错误:{error:SyntaxError:JSON中位于XMLHtt处JSON.parse()位置0处的意外标记A…,文本:“AAA BBB CCC”}头:HttpHeaders{normalizedNames:Map(0),lazyU

  • 我一直在寻找一种方法,通过新的的将查询参数传递到API调用中,但尚未找到解决方案。使用旧的模块,您可以编写如下内容。 这将导致对以下URL的API调用: 但是,新的方法没有属性,所以我想知道在哪里传递查询参数?

  • 本文向大家介绍HttpClient基础解析,包括了HttpClient基础解析的使用技巧和注意事项,需要的朋友参考一下 本文讲述了HttpClient基础知识,对相关概念进行解释在这里分享给大家,供大家参考。 1. 请求执行: HttpClient最重要的功能是执行HTTP方法。执行HTTP方法涉及一个或多个HTTP请求/ HTTP响应交换,通常由HttpClient内部处理。用户期望提供一个请求