我有这个请求函数,该函数围绕着获取API进行包装,以向我的API发出请求。但是,当我的前端应用程序发出请求时,标头对象始终为空。我在做什么错了?
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);
});
});
}
答案 0 :(得分:0)
尝试使其成为一个简单的对象:
const headers = {
"Content-Type": "application/json"
};
答案 1 :(得分:0)
您是否在 DevTools 的网络选项卡中检查过是否确实缺少标头?
我遇到了与您描述的相同的问题,Chrome DevTools 中我的 Header 对象似乎始终为空,但是如果尝试检查特定的标题,例如
let headers = new Headers({'X-whatever-name': 'whatever-value'});
myHeader.has('X-whatever-name'); // returns true
此外,如果我在 DevTools(网络选项卡)中检查请求标头的详细信息,我可以看到我的自定义标头已正确发送。
所以只有 JS api (entries
, keys
, ...) 对我来说似乎被破坏了,但请求被正确发送。