gpt4 book ai didi

javascript - Angular 4 从 API 响应中获取 header

转载 作者:可可西里 更新时间:2023-11-01 01:56:12 24 4
gpt4 key购买 nike

我正在向 API 发送请求,它返回一个数据数组,但我不知道如何从该 url 中提取 header ,这是我在我的服务中尝试过的方法

@Injectable()
export class ResourcesService {
private resourcesurl = "http://localhost:9111/v1/resources";

constructor(private http: Http) { }

getResources() {
let headers = new Headers();
headers.append("api_key", "123456");
return this.http.get(this.resourcesurl, { headers: headers
}).map(this.extractData).catch(this.handleError);
}
getresourceheaders(){
let headers = new Headers();
headers.append("api_key", "123456");
let options = new RequestOptions();
let testsss = options.headers
let headerapi = this.http.request(this.resourcesurl, options);
let test = this.http.get(this.resourcesurl, { headers: headers });
console.log(headerapi);
}
private extractData(res: Response) {
let body = res.json();
return body.data || {};
}
private handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(errMsg);
}
}

我想从该响应中获取 header ,在本例中为 resourceurl

有什么想法吗?

最佳答案

清除 Angular 5 答案

默认情况下,this.http.whatever 返回的 observable 将在返回的data 上,而不是 HttpResponse。

如果您的峰位于:https://angular.io/api/common/http/HttpClient您会注意到这些选项采用 HttpObserve 类型的“观察”参数。虽然没有记录 HttpObserve 是什么,但如果您将其作为“响应”,那么您将收到一个 HttpResponse<T> 的实例。 ( https://angular.io/api/common/http/HttpResponse )

因此,这是一个示例请求:

this.http.get(url, {observe: 'response'})
.subscribe(resp => console.log(resp.headers))

注意:由于浏览器的安全性,除非 API 提供 Access-Control-Expose-Headers:,否则您将无法看到 header 。如果您的 api 和 Angular 应用程序没有相同的域,请使用您的自定义 header 。

关于javascript - Angular 4 从 API 响应中获取 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com