快速服务器中的 CORS 阻止访问

Posted

技术标签:

【中文标题】快速服务器中的 CORS 阻止访问【英文标题】:Access blocked by CORS in express server 【发布时间】:2020-10-24 20:09:55 【问题描述】:

向我的 express 服务器发送 POST api 请求时出现以下错误。

Access to XMLHttpRequest at 'localhost:8081/application' from origin 'localhost:8083' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

快递服务器正在使用npm cors包和passport jwt认证策略。

privateServer.use(cors());
registerJWTAuthentication();
  privateServer.all('*', authenticate('jwt', 
    session: false,
  ));
privateServer.addRouter('/application', privateApplicationRouter);

我正在使用 axios 从 nuxtjs 应用程序发送此请求。

const result = await axios.post('localhost:8081/application', payload);

有人知道如何解决这个 CORS 问题吗?

【问题讨论】:

我建议对问题标题进行编辑 - “如何处理 CORS 问题”的答案将类似于“哭到深沉的井中”或“全部烧掉然后走开”???? 参考***.com/questions/33483675/… 不工作。我也有一个公共服务器(没有我们的身份验证),它可以在我们进行任何更改的情况下工作。 尝试在前端的 axios 请求中添加 'Access-Control-Allow-Origin': '*'。通常,cors 在本地计算机上运行时会启用所有来源。一旦我将它部署到无服务器环境和其他服务器的东西,我什至遇到了问题。也许这有帮助:/ 【参考方案1】:

cors 中间件允许您传递选项,您可以执行以下操作:

  
      "origin": "localhost:8083",
      "credentials": true,
  

请注意,'origin' 可以接受您允许的来源数组,并且您的请求还应包含:

 
     credentials: 'include',
 

为了发送 cookie,

希望对你有帮助...

【讨论】:

以上是关于快速服务器中的 CORS 阻止访问的主要内容,如果未能解决你的问题,请参考以下文章

被部署在 Firebase Functions 上的快速服务器的 CORS 策略阻止,即使定义了 cors

CORS 策略已阻止对 XMLHttpRequest 的访问:Spring API 和 Angular UI

从源“http://localhost:4200”访问“”处的 XMLHttpRequest 已被 CORS 阻止。我无权访问服务器

已被 CORS 策略阻止:没有“访问控制允许来源”

从本地 html 文件到服务器的 JSON 请求引发 CORS 错误:CORS 策略已阻止从源“null”访问 <URL> 处的 XMLHttpRequest

春季网关请求被 CORS 阻止(无访问控制-允许-来源标头)