gpt4 book ai didi

javascript - Axios 不会发送 cookie,Ajax (xhrFields) 就可以了

转载 作者:数据小太阳 更新时间:2023-10-29 04:25:30 25 4
gpt4 key购买 nike

使用 Axios

export function sendAll() {
return (dispatch) => {
dispatch(requestData());
return axios({
method: 'POST',
url: `${C.API_SERVER.BASEURL}/notification/sendAll`,
data: {prop: 'val'},
// responseType: 'json',
headers: {
'Content-Type': 'application/json'
},
withCredentials: true
}).then((response) => {
dispatch(receiveData(response));
}).catch((response) => {
dispatch(receiveError(response));
// dispatch(pushState(null, '/error'));
})
}
};

使用 Axios 的结果

Chrome network tab when using Axios

使用 $.ajax

$.ajax({
url: " http://local.example.com:3001/api/notification/sendAll",
method: "post",
data: {},
crossDomain: true,
xhrFields: {
withCredentials: true
}
})

使用 $.ajax 的结果

Chrome network tab when using $.ajax

在尝试将数据附加到 POST 时,我无法强制 Axios 发送 POST(无论哪种方式都不会发送 cookie)。我的服务器设置(快速):

app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", `${C.PROTOCOL}://${C.DOMAIN}:${C.PORT}`);
res.header("Access-Control-Request-Headers", "*");
res.header('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.header("Access-Control-Allow-Credentials", "true");
next();
});

我没有定义 OPTIONS 路线。我希望 Axios 发送带有 cookie 的 POST。

router.post('/notification/sendAll', function (req, res, next) {
res.sendStatus(204);
// ...
});

最佳答案

我遇到了类似的问题。通过 Axios 发出获取/发布请求不会发送与直接 XHR 请求相同的 header 。

然后我就在 Axios require 语句之后添加了以下内容:

axios.defaults.withCredentials = true;

之后 Axios 开始像常规 XHR 请求一样发送我的 cookie。

关于javascript - Axios 不会发送 cookie,Ajax (xhrFields) 就可以了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40941118/

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