Strapi v4 抛出 cors 异常

Strapi v4 throwing cors exception

我是 strapi 的新手,我已经下载了 strapi v4,作为前端,我使用 vue.js。

现在我创建了类别,我正在尝试使用我的 vue 应用程序获取这些类别,但我遇到了 cors 错误。

Access to XMLHttpRequest at 'http://localhost:1337/api/categories' from origin 'http://localhost:8080' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

documentation 我看到我可以覆盖 cors 中间件上的 origin,但我不知道如何。

我已经用 resolve 试过了,然后设置了配置,但这会破坏 cms。

  {
    resolve: 'strapi::cors',
    config: {
      origin: 'http://localhost:8080'
    }
  }

在互联网上花了几个小时后,我终于开始工作了。

在我的 config/middlewares.js 中,我不得不将 strapi::cors 替换为:

module.exports = [
  ...
  {
    name: 'strapi::cors',
    config: {
      enabled: true,
      header: '*',
      origin: ['http://localhost:8080']
    }
  }
  ...
];

不要忘记添加端口号,否则将无法使用。

我遇到了与 Refilons 答案相同的问题,但查看 strapi 的官方文档解决了它:https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/required/middlewares.html#cors

header 属性 必须是复数:headers: '*'.

在中间件 config/middleware.js 中将 'strapi::cors', 替换为:

{
  name: 'strapi::cors',
  config: {
    enabled: true,
    headers: '*',
    origin: ['http://localhost:8080']
  }
},

正如您在文档中阅读的那样,您还可以指定其他 cors 属性,例如“方法”。

"origin" 也可以是带有 '*' 的字符串,它允许所有 url。