gpt4 book ai didi

javascript - 与域在同一台计算机上运行的 NODEJS 服务器的 CORS 错误

转载 作者:行者123 更新时间:2023-11-28 19:17:39 25 4
gpt4 key购买 nike

我的机器上运行着一个 NodeJS 服务器,我正在尝试使用 ajax 从同一台机器上运行的网站访问它。但我遇到了跨域错误:XMLHttpRequest 无法加载 http://localhost:3000/games 。请求的资源上不存在“Access-Control-Allow-Origin” header 。来源'http://localhost ' 因此不允许访问。

我在这台机器上访问了不同的api,使用php运行,其地址是 http://localhost/games .

我的想法是,因为nodejs服务器运行在与apache不同的端口上,所以导致了跨域问题?

任何见解都会很棒,我是 API 开发新手,不知道从这里该何去何从。

有人建议我尝试使用 JSONP,但我不确定这在技术上是否需要,因为 api 运行在同一台机器上?

最佳答案

源被定义为 URI 方案、主机名和端口号的组合,因此您确实违反了从 http://localhost 执行 XMLHttpRequest 的同源策略。至 http://localhost:3000

我对 Nodejs 不太熟悉,但我看到五个选项:

  • 显然,最简单的方法是在同一端口上运行所有内容,不确定这在您的场景中是否可行。
  • 使用 JSONP(仅对 GET 请求有效)
  • 实现 CORS header (与 IE <= 9 + other corner case anomalies 存在一些兼容性问题)
  • 实现代理以始终与 http://localhost 进行通信来自客户。让代理处理http://localhost:3000并向客户端返回响应。
  • 使用替代方案执行跨域请求,如 XDomain

关于javascript - 与域在同一台计算机上运行的 NODEJS 服务器的 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com