在互联网上,我看到只有像下面这样的HTTP请求添加参数。
this.headers.append('Content-Type', 'application/json');
this.headers.append('Accept', 'application/json');
this.headers.append('Access-Control-Allow-Credentials', 'true');
我无法找到如何在Angular 4中获取HTTP请求标头参数。
答案 0 :(得分:0)
如果这对于如今正在寻找此答案的人有用:
request.headers.forEach(h=> {
console.log(h);
console.log(request.headers.get(h));
})
每当请求为HttpRequest
时,就会在控制台中显示所有标题名称及其对应的值。
我在拦截器内部使用它在我的angular 10应用中实现了V4签名,并且它正在ATM上运行。
您得到HttpHeaders {normalizedNames: Map(7), lazyUpdate: null, lazyInit: null, headers: Map(7)}
在开发人员工具中查看request.headers
内容时,因为它是延迟加载的,但是,如果在运行我上面粘贴的代码后再次查看它,您应该在headers属性中看到所有现有的标头及其内容(应该与控制台上打印的内容相匹配。)
源:我在运行中的Angular 10应用程序中在控制台中尝试过,但在Http拦截器的拦截方法内的断点处暂停了。
答案 1 :(得分:-1)
Headers类还有一个get(name:string)方法,它返回一个字符串,以及检查标题的其他有用方法。来自Angular文档:
https://angular.io/api/common/http/HttpHeaders
class HttpHeaders {
constructor(headers?: string | {...})
has(name: string): boolean
get(name: string): string | null
keys(): string[]
getAll(name: string): string[] | null
append(name: string, value: string | string[]): HttpHeaders
set(name: string, value: string | string[]): HttpHeaders
delete(name: string, value?: string | string[]): HttpHeaders
}
您还可以使用浏览器的开发人员工具来检查请求/响应标头。
编辑:如果您确切地指定了您需要做什么,可能会有所帮助。是否需要检查特定的标题?
EDIT2:还有不推荐使用的Headers类。不确定你使用的是什么,但是在可用的方法方面有很多重叠,所以它甚至可能都不重要。
https://angular.io/api/http/Headers
class Headers {
constructor(headers?: Headers | {...})
static fromResponseHeaderString(headersString: string): Headers
append(name: string, value: string): void
delete(name: string): void
forEach(fn: (values: string[], name: string | undefined, headers: Map<string, string[]>) => void): void
get(name: string): string | null
has(name: string): boolean
keys(): string[]
set(name: string, value: string | string[]): void
values(): string[][]
toJSON(): {...}
getAll(name: string): string[] | null
entries()
}