HttpErrorResponse - 无法从服务器获取text / html响应

问题描述 投票:0回答:1

我有一个问题是从我的服务器获取http响应。我想用HttpClient将身份验证登录重现到我的login.service.ts文件中。

我在最后几个小时尝试找到解决方案,但没有任何工作......

这是我用它的代码:

login.service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class LoginService {
  constructor(private http: HttpClient) { }

  login(){
    this.http.post('http://localhost:3000/auth', null, {headers: {
        'x-login': 'admin', 
        'x-password': '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918'}})
  .subscribe(myToken => console.log(myToken));
  }
}

我使用PostMan测试登录名和密码,/ auth响应一个令牌:653db89e-b80e-47f8-834a-62275b04fcbb。

Content-Type不是JSON响应,这是text / html; charset = utf-8,我认为这可能是问题,但我真的不知道。

错误是:

HttpErrorResponse {headers: HttpHeaders, status: 201, statusText: "Created", url: "http://localhost:3000/auth", ok: false, …}
error: {error: SyntaxError: Unexpected number in JSON at position 1 at JSON.parse (<anonymous>) at XMLHttp…, text: "08951337-479a-4e53-8b1b-823d29d89139"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message: "Http failure during parsing for http://localhost:3000/auth"
name: "HttpErrorResponse"
ok: false
status: 201
statusText: "Created"
url: "http://localhost:3000/auth"
__proto__: HttpResponseBase 

欢迎任何帮助!

我试着学习Angular 7,如果我说的不清楚,请不要犹豫,向我询问更多信息。

谢谢 !

rxjs observable angular7 angular-httpclient
1个回答
0
投票

我将reponseType: "text"参数添加到我的帖子()并且它有效!这是完整的操作:

this.http.post('http://localhost:3000/auth', null, {headers: {
        'x-login': 'admin', 
        'x-password': '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918'},
responseType: "text" })
.subscribe(myToken => console.log(myToken)); // Output : 43307067-0c23-47ae-8085-402959e1f157
© www.soinside.com 2019 - 2024. All rights reserved.