首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axios -跨域cookie

Axios -跨域cookie
EN

Stack Overflow用户
提问于 2018-07-07 15:45:18
回答 2查看 16.3K关注 0票数 3

我有两个应用程序(后端和前端)运行在本地计算机上(端口8080的前端- Vue应用程序,端口9000的后端- Scala应用程序)。

我试图使用带cookie的Axios将请求发送到后端,但只有在两个都运行在相同的域中时,它才能工作:

它正在工作(在API请求中存在cookie):

后端地址:http://127.0.0.1:9000/api/systems

前端(浏览器):http://127.0.0.1:8080

不工作(请求不包含cookie):

后端地址:http://127.0.0.1:9000/api/systems

前端(浏览器):http://localhost:8080

我的前端代码片段有请求:

代码语言:javascript
复制
const BASE_URL = appConfig.API_URL + '/api';
axios.defaults.withCredentials = true;
axios.get(BASE_URL + '/systems');

我认为CORS配置正确:

代码语言:javascript
复制
play.filters.cors {
  allowedOrigins = ["http://localhost:8080", "http://127.0.0.1:8080"]
  supportsCredentials = true
  allowedHttpMethods = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
}
EN

回答 2

Stack Overflow用户

发布于 2022-04-03 12:47:19

在后端试试这个:

代码语言:javascript
复制
const allowedOrigins = ['localhost',"http://localhost:8080", "http://127.0.0.1:8080","http://localhost:8080/"];
var corsOptions = {
  origin: function (origin, callback) {
    if (allowedOrigins.indexOf(origin) !== -1) {
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
      console.log("------")
      console.log("origin",origin)
    }
  },
  credentials: true,
}
票数 1
EN

Stack Overflow用户

发布于 2019-01-20 14:40:08

您需要在响应中设置标题:

代码语言:javascript
复制
Access-Control-Allow-Headers: Set-Cookie

在node.js上的特快专递中,它是这样的:

代码语言:javascript
复制
res.setHeader('Access-Control-Allow-Headers', 'Set-Cookie')
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51224668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档