我正在try 用Angular发出请求,我知道HTTP响应将以文本形式发出.然而,Angular似乎期待JSON响应,因为错误如下:

SyntaxError:意外标记<在JSON位置0处的JSON中.作语法分析

以及

解析过程中Http失败http://localhost:9...

这是post方法:

return this.http.post(this.loginUrl, this.createLoginFormData(username, password), this.httpOptions)
  .pipe(
    tap( // Log the result or error
      data => console.log(data);
      error => console.log(error)
    )
  );

还有标题.

private httpOptions = {

  headers: new HttpHeaders({
    'Accept': 'text/html, application/xhtml+xml, */*',
    'Content-Type': 'application/x-www-form-urlencoded',
    responseType: 'text'
  },

) };

我认为responseType: 'text'就足以让Angular期待一个非JSON响应.

推荐答案

你把responseType: 'text'放在了httpOptions的错误部分——它应该是headers中的outside,就像这样:

private httpOptions = {
  headers: new HttpHeaders({
    'Accept': 'text/html, application/xhtml+xml, */*',
    'Content-Type': 'application/x-www-form-urlencoded'
  }),
  responseType: 'text'
};

与以前一样,请求头responseType被发送到服务器,而不是简单地有一条指令来实际将响应作为文本处理.

Typescript相关问答推荐

Angular -使用Phone Directive将值粘贴到控件以格式化值时验证器不工作

如何在ts中使用函数重载推断参数类型

为什么在TypScript中写入typeof someArray[number]有效?

使用带有RxJS主题的服务在Angular中的组件之间传递数据

我们过go 不能从TypeScript中的联合中同时访问所有属性?

HttpClient中的文本响应类型选项使用什么编码?''

打印脚本丢失函数的泛型上下文

对数组或REST参数中的多个函数的S参数进行类型判断

返回具有递归属性的泛型类型的泛型函数

参数属性类型定义的REACT-RUTER-DOM中的加载器属性错误

是否将自动导入样式从`~/目录/文件`改为`@/目录/文件`?

推断从其他类型派生的类型

复选框Angular 在Ngfor中的其他块中重复

类型脚本-在调用期间解析函数参数类型

为什么TypeScrip不能解析对象析构中的赋值?

如何静态键入返回数组1到n的函数

如何在Reaction Native中关注屏幕时正确更新状态变量?

如何创建由一个帐户签名但使用另一个帐户支付的Hedera交易

使用泛型以自引用方式静态键入记录的键

Select 类型的子项