我有这个请求函数,它是获取 API 的包装器,用于向我的 API 发出请求。但是当我的前端应用发出请求时,headers 对象总是空的。我做错了什么?
export function request(method, url, payload) {
const body = JSON.stringify(payload);
const headers = new Headers();
headers.append('Content-Type', 'application/json');
const parameters = {
headers: headers,
method: method,
body: body,
cache: "default"
};
return Observable.create(observer => {
fetch(url, parameters)
.then(response => {
observer.next(response);
observer.complete();
})
.catch(error => {
observer.error(error);
});
});
}
最佳答案
如果 header 真的丢失了,您是否检查过 DevTools 的网络选项卡?
我遇到的问题与你描述的一样,我的 Header 对象在 Chrome DevTools 中似乎总是空的,但是如果尝试检查特定的 header ,比如
let headers = new Headers({'X-whatever-name': 'whatever-value'});
myHeader.has('X-whatever-name'); // returns true
此外,如果我在 DevTools(网络选项卡)中检查请求 header 的详细信息,我可以看到我的自定义 header 已正确发送。
所以只有 JS api (entries
, keys
, ...) 对我来说似乎坏了,但请求已正确发送。
关于javascript - fetchAPI 的 header 对象始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718772/