angular v5.1.0 HttpClient未设置头内容类型:application/json

Sop*_*rde 12 httpclient angular

我正在尝试将post api的头设置为application.json

let options: { headers?: {'Content-Type':'application/json'} }
Run Code Online (Sandbox Code Playgroud)

但没有设定.

Luc*_*ssa 16

要使用新的HttpClient类定义内容类型,您需要:

  1. @angular/common/http(并且@angular/http当前未标记为已弃用)
import { HttpClient, HttpHeaders } from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)
  1. HttpClient在构造函数上注入:
constructor(private http: HttpClient) { }
Run Code Online (Sandbox Code Playgroud)
  1. 定义私有字段headers以定义所需的内容类型,并 options准备将在调用中使用的对象:
private options = { headers: new HttpHeaders().set('Content-Type', 'application/json') };
Run Code Online (Sandbox Code Playgroud)
  1. 在您的方法中使用它:
this.http.post('your target url', yourBodyObject, this.options)
Run Code Online (Sandbox Code Playgroud)

其中'your target url'yourBodyObject仅用作示例,需要替换为您的实际数据.


Dre*_*nai 6

Angular文档中有一节内容 - 可能最近添加了:

import { HttpHeaders } from '@angular/common/http';

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': 'my-auth-token'
  })
};
Run Code Online (Sandbox Code Playgroud)

当我尝试使用上述格式向httpOptions添加响应类型时,TypeScript给了我警告,所以我成功使用了以下内容:

let headers = new HttpHeaders({
            'Content-Type': 'application/text'
        });

return this.http.get(url, { responseType: 'text', headers })
Run Code Online (Sandbox Code Playgroud)

文档链接


小智 2

在这里试试这个代码=>

let header = {'Content-Type':'application/json'}
Run Code Online (Sandbox Code Playgroud)