微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的 Axios 请求 withCredantials 给了我从 a.subdomain 到 b.subdomain 的 Cors 错误?

如何解决为什么我的 Axios 请求 withCredantials 给了我从 a.subdomain 到 b.subdomain 的 Cors 错误?

我在 API 上使用 Symfony 3.4,在前端使用 Vue.js 和 Axios 我的前端有一个https://a.subdomain.io 这样的域名 我的 API 有一个类似 https://b.subdomain.io

的域名

我正在尝试使用 axios 将这样的请求从我的前端发送到我的 API:

axios.post('https://b.subdomain.io/checkapi/checkConnection',null,{withCredentials: true}).then((res) => {
    //some logic here
});

我在配置中使用 withCredentials: true 因为我想发送 cookie 的请求是:

  • HttpOnly
  • 域名:.sudbomain.io

在我的 Symfony 3.4 上,我将 nelmio cors 包的配置放在 config.yml 中,如下所示:

nelmio_cors:
    defaults:
        allow_origin: [ 'https://a.subdomain.io' ]
        allow_headers: [ '*' ]
        allow_methods: [ 'GET','OPTIONS','POST','PUT','PATCH','DELETE' ]
        expose_headers: [ 'Link' ]
        max_age: 3600
        allow_credentials: true
    paths:
        '^/': ~

这是我对 security.yml 中 checkapi 前缀的访问控制:

access_control:
    - { path: ^/checkapi,roles: IS_AUTHENTICATED_ANONYMOUSLY }

Cors error

解决方法

好吧,我发现了错误:这是 VirtualHost 配置中服务器端的这一行:

Header set Access-Control-Allow-Origin "*"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。