Javascript 与域在同一台计算机上运行的NODEJS服务器的CORS错误
我的机器上运行着一个NodeJS服务器,我正试图从同一台机器上运行的网站上用ajax访问它。但我收到一个跨域错误: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 我在这台机器上访问了一个不同的api,它使用php运行,地址是 我的想法是,因为nodejs服务器运行在与apache不同的端口上,这导致了跨域问题 任何洞察都会很好,我对api开发还不熟悉,不知道该从这里走到哪里Javascript 与域在同一台计算机上运行的NODEJS服务器的CORS错误,javascript,php,ajax,node.js,cors,Javascript,Php,Ajax,Node.js,Cors,我的机器上运行着一个NodeJS服务器,我正试图从同一台机器上运行的网站上用ajax访问它。但我收到一个跨域错误: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 我在这台机器上访问了一个不同的api,它使用php运行,地址是 我的想法是,因为nodejs服务器运行在与apache不同的端口上,这导致了跨域问题 任何洞察都会很好,我对api开发还不熟悉,不知道该从这里走到哪里 有人建议我应该尝试使用
有人建议我应该尝试使用JSONP,但我不确定这在技术上是否需要,因为api在同一台机器上运行?源代码被定义为URI方案、主机名和端口号的组合,因此您确实打破了从到执行XMLHttpRequest的同一源代码策略 我不太熟悉nodejs,但我看到了五种选择:
- 显然,最简单的方法是在同一个端口上运行所有内容,但不确定在您的场景中这是否可行
- 使用JSONP(仅对GET请求有效)
- 实现CORS头文件(它与IE有一些兼容性问题源文件被定义为URI方案、主机名和端口号的组合,因此执行XMLHttpRequest from to确实违反了相同的源文件策略
我不太熟悉nodejs,但我看到了五种选择:
- 显然,最简单的方法是在同一个端口上运行所有内容,但不确定在您的场景中这是否可行
- 使用JSONP(仅对GET请求有效)
- 实现CORS头文件(它与IE有一些兼容性问题源文件被定义为URI方案、主机名和端口号的组合,因此执行XMLHttpRequest from to确实违反了相同的源文件策略
我不太熟悉nodejs,但我看到了五种选择:
- 显然,最简单的方法是在同一个端口上运行所有内容,但不确定在您的场景中这是否可行
- 使用JSONP(仅对GET请求有效)
- 实现CORS头文件(它与IE有一些兼容性问题源文件被定义为URI方案、主机名和端口号的组合,因此执行XMLHttpRequest from to确实违反了相同的源文件策略
我不太熟悉nodejs,但我看到了五种选择:
- 显然,最简单的方法是在同一个端口上运行所有内容,但不确定在您的场景中这是否可行
- 使用JSONP(仅对GET请求有效)
- 实施CORS标头(它与IE存在一些兼容性问题,因为您需要能够发送POST请求,您唯一的选择是:
- 实施CORS
- 反向代理
- php代理(或用于服务html页面的任何语言)
至http://localhost/api
.Resear为您正在使用的Web服务器设置反向代理http://localhost:3000
第三个解决方案是让WebServer服务HTML也向节点服务器发送请求。我认为这对我的口味来说有点过于陈旧,因为以上两个解决方案很容易实现,并且不向HTML Web服务器添加附加代码。但是,如果您没有目标Web服务器,这将是唯一的选择。目标Web服务器不支持CORS。
因为您需要能够发送POST请求,所以您唯一的选择是:- 实施CORS
- 反向代理
- php代理(或用于服务html页面的任何语言)
至http://localhost/api
.Resear为您正在使用的Web服务器设置反向代理http://localhost:3000
第三个解决方案是让WebServer服务HTML也向节点服务器发送请求。我认为这对我的口味来说有点过于陈旧,因为以上两个解决方案很容易实现,并且不向HTML Web服务器添加附加代码。但是,如果您没有目标Web服务器,这将是唯一的选择。目标Web服务器不支持CORS。
因为您需要能够发送POST请求,所以您唯一的选择是:- 实施CORS
- 反向代理
- php代理(或用于服务html页面的任何语言)
至http://localhost/api