【问题标题】:Cross-Origin Request Blocked - NodeJs跨域请求被阻止 - NodeJs
【发布时间】:2016-05-17 20:11:07
【问题描述】:

我在 AWS - Windows 上的 MEAN 堆栈应用程序出现问题。所以,我设置了一个 3000 端口供 Node 服务器监听,而 IIS 默认使用 80 端口。

然后,当我启动节点服务器进行侦听并启动应用程序时,我想通过 Node.js 使用 Angular 获取一些数据。我正在尝试这个:

$http.get('http://localhost:3000/get_data').success(function(response) { // something with response });

这会在我的控制台中重现错误:

这对我来说是一个障碍,如果有人能指出我正确的方式,我将不胜感激。

我也很想知道为什么会发生这种情况,为什么我得到的 CORS 的端口与默认 (80) 不同?

谢谢

【问题讨论】:

  • google 那个错误 .... 它每天在这里出现无数次,并且没有可用的答案

标签: angularjs node.js iis mean-stack


【解决方案1】:

有一个不错的 node.js 包,名为 cors。您可以通过以下方式使用此库

var cors = require('cors')
app.options('/get_data', cors());
app.route('/get_data').get(cors(), doOperation());

【讨论】:

  • 我会尝试这种方法并让你知道。
【解决方案2】:

您可以使用CORS 模块在节点端启用跨源请求。 在此处阅读有关模块和文档的更多信息:Enable cors

var cors = require('cors');
app.use(cors());

【讨论】:

  • 你把app.use(cors())放在所有api之前了吗?
  • 我开始app = Express(); 然后app.use(cors());。我也很想知道为什么会发生这种情况,为什么我会使用不同的端口获得 CORS?
  • 这是出于安全原因。浏览器不允许跨域请求。在这里阅读:html5rocks.com/en/tutorials/cors
猜你喜欢
  • 1970-01-01
  • 2020-12-22
  • 2021-06-26
  • 2014-10-13
  • 2019-11-04
  • 2017-02-06
  • 2017-01-04
相关资源
最近更新 更多