【问题标题】:cors issue with angular & nodejs [closed]angular 和 nodejs 的 cors 问题(已解决)[关闭]
【发布时间】:2021-04-17 03:22:26
【问题描述】:

我正在使用 angular & node.js & cors

在我的本地设备中一切正常

现在是部署到云服务器的时候了

各个前端和后端的路径

root/后端在端口 :5000 上工作

root/frontend 在端口 :5002 上工作

(digitalocean)

我设置了 apache2 和 phpmyadmin

在后台

 var corsOptions = { origin: "http://localhost:5002" };

它应该通过工作

但它给了我状态:0

我打开 2 个终端来运行项目前端和项目后端

ng 服务 --host 0.0.0.0 --port 5002

当我运行它时 https//ip:5002 但没有数据

编辑:

我也遇到了这样的错误

Access to XMLHttpRequest at 'http://localhost:5000/api/auth/signup' from origin 'http://ip:5002' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'http://localhost:5002' that is not equal to the supplied origin.

【问题讨论】:

  • 尝试从http://localhost:5002 运行它,而不是https//ip:5002。如果将https//ip:5002 放入浏览器地址栏中并以这种方式运行,它与http://localhost:5002 不匹配,因此浏览器会阻止您的前端代码访问响应。浏览器检查实际原始值和 Access-Control-Allow-Origin 值之间的精确匹配。而且https//ip:5002http://localhost:5002 不完全匹配。

标签: node.js angular cors digital-ocean


【解决方案1】:

如果您已将项目部署在服务器上:

尝试在您的后端进行更改:
var corsOptions = { origin: "http://localhost:5002" };

到这里:

cors({
     origin: "*",
        })

注意:“*”表示任何人都可以连接到您的 API,或者您可以将您的服务器 IP 用于为您的 Forntend 项目提供服务。

在 Forntend 端,请确保您从后端服务器调用请求,例如:

在您的本地计算机上,您可以从以下位置调用它: http://localhost:5000/api/auth/signup

但是当您的后端在服务器上时,您需要将其更改为:
http://<your-backend-server-IP or DNS>/api/auth/signup

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 2021-09-06
    • 2017-06-04
    • 2020-06-29
    • 1970-01-01
    • 2013-11-20
    • 2019-06-05
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多