san*_*dum 0 xmlhttprequest http-headers angular angular5
我试图弄清楚如何处理HttpHeaders上的标头,以通过HttpClient将它们用于http请求.
const headers = new HttpHeaders();
headers.append('foo', 'bar');
headers.set('foo', 'bar');
console.log(headers.get('foo')) // null
Run Code Online (Sandbox Code Playgroud)
它只能这样工作:
const headers = new HttpHeaders().set('foo', 'bar');
console.log(headers.get('foo')) // bar
Run Code Online (Sandbox Code Playgroud)
有没有一种特殊的方法来添加标题?或者这是一个错误?
这对我有用:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
const url = `https://sampleapi.com`;
@Injectable()
export class BasicService {
private _headers = new HttpHeaders().set('Content-Type', 'application/json');
constructor(private httpClient: HttpClient) { }
getWithHeader(): Observable<any> {
const headers = this._headers.append('foo', 'Bar');
return this.httpClient.get<any>(url, { headers : headers });
}
}
Run Code Online (Sandbox Code Playgroud)
这开头是一个私有变量,它使用包含初始标题集的私有变量set.然后用于append在进行Http调用之前添加其他标头.
注意,append返回一个HttpHeaders对象,这就是我将输出分配给const的原因.只是单独运行append,认为现有的_headers将会改变,不会给你你可能期望的结果.我确实确认HttpHeaders是不可变的.
编辑:来自HttpHeaders文档:不可变的Http头集,具有延迟解析.
| 归档时间: |
|
| 查看次数: |
11136 次 |
| 最近记录: |