【发布时间】:2019-02-26 03:37:41
【问题描述】:
我尝试 fetch 来调用 api 并将凭据“include”传递给最初从服务器设置 cookie 但在页面刷新时 cookie 丢失的标头。
public post = async (payload:any, endpoint: string):Promise<any> => {
return new Promise((resolve, reject) => {
console.log(${config.baseUrl}${endpoint})
const URL = ${config.baseUrl}${endpoint};
fetch(URL, {
credentials: 'include',
method: 'POST',
body: JSON.stringify(payload),
headers: new Headers({
'Content-Type': 'application/json'
})
})
.then(data => data.json())
.then((data:any) => {
console.log("data", data)
const responsePayload = {
statusCode: data.status,
data: data
};
resolve(responsePayload);
})
.catch((error:any) => {
if (error.response === undefined) {
const errorpayload = {
statusCode: 503,
title: 'network error occured',
parameter: 'Network Error',
};
reject(errorpayload);
} else {
const errors = error.response.data.errors;
const errorPayload = {
statusCode: error.response.status,
data: error.response.data.errors,
};
reject(errorPayload);
}
});
});
};
【问题讨论】:
-
fetch 已经返回了一个promise,为什么你的函数被promise 包裹了?
-
另外,您刷新页面的代码在哪里?
-
这可能会对您的情况有所帮助 stackoverflow.com/questions/17714962/… 如果不查看整个代码上下文,我无法为您提供更多信息。
标签: javascript cookies fetch