[英]Axios cannot send request with cookie
我正在尝试从我的 api 中获取数据,我需要在 header 中传递一个 cookie。 我在 postman 上进行了测试,它可以工作,但我在我的代码中不起作用,返回错误是 403。任何想法我缺少什么?
谢谢
这是我的代码:
function LoadStudies() {
const config = {
headers: {
Cookie: '_ga=GA1.2.2139220028.1611912340;csrftoken=ADJBapIX3oLu3j8QHdD05zsJnDhzx0jDYtAjKV2GY0FkBzVNfdLY8xVMV1YF4Ibd;djdt=show;sessionid=0x40wumk8ehcb4boh6610pqud5wtqsjl;session_state=4f7e11af-abd0-4f9f-8357-611100821df3'
},
withCredentials :true,
}
console.log(config)
axios
.get("https://Domain/api/study/", config)
.then((response) => {
console.log('working!')
}).catch((error) => {
console.log(error)
});
}
LoadStudies();
(我假设你在浏览器中运行这个客户端,给定 tag:reactjs] 标签)。
Cookie
是一个被禁止的 header 名称。
您不能使用客户端 JavaScript 手动设置 header。 您必须有一个现有的 cookie(如果您有withCredentials: true
则会发送该 cookie)。
如果您正在发出相同的来源请求,您可以通过document.cookie
设置它,否则您将不得不发出 HTTP 请求( withCredentials: true
)并让 API 设置 cookie(浏览器限制对第三方 Z55E7DDF3016CE24 可能会导致问题6AF16CE24虽然在这里)。
请注意,API 通常是无状态的,因此您尝试使用 Google Analytics ID、session ID 和 csrftoken 发送 cookies 是很奇怪的。 通常,您只会发送一个授权令牌,现在通常是JWT ,并且通常在Authorization
header而不是 Cookie 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.