我正在尝试whatwg-fetch(针对Fetch API的polyfill),并且在执行POST时,执行预检。但是,由于在将OPTIONS发送到REST服务时未发送凭据,因此我收到了未经授权的"响应。
return fetch('http://localhost:8080/activity', {
credentials: 'include',
method: 'POST',
mode: 'cors',
body: JSON.stringify(activity),
headers: new Headers({ 'Content-Type': 'application/json' })
});
答案 0 :(得分:1)
以我的案例作为答案。我相信它会对你有所帮助:
export function doSearchRequest (filters) {
let token = $('meta[name="csrf-token"]').attr('content');
return (fetch('/services/search/message', {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Cache': 'no-cache',
'_token' : token,
'X-CSRF-Token' : token,
'X-XSRF-TOKEN' : token
},
credentials: 'include',
body: JSON.stringify(filters)
})
.then(response => response.json())
.then(function(json) {
return json;
})
);
}
答案 1 :(得分:0)
以下是https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request所有关于您的案例的信息https://fetch.spec.whatwg.org/#cors-preflight-fetch。浏览器发送预检OPTIONS请求,因为您使用跨域请求