Chrome中的AngularJS CORS问题 - 请求的资源上没有"Access-Control-Allow-Origin"标头

Mik*_*Sav 2 javascript rest node.js angularjs

我正在做一些练习以熟悉AngularJS,并http://127.0.0.1:9000/在执行必要的grunt任务后运行我的应用程序.现在我想写/自己如何允许授权/认证请求(基本上是登录表单).我有一个单独的项目,有一个REST API,这是运行http://127.0.0.1:3000/- 注意端口号的差异.练习是在我的本地机器上托管所以我希望使用CORS来满足我的要求,因为浏览器限制不是问题而且应用程序是我自己的娱乐.在我的angularJS应用程序中,我在我的代码中包含以下代码config以允许CORS请求:

// set up CORS...
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
Run Code Online (Sandbox Code Playgroud)

在我的Rest API/Node Project中,我包含了https://www.npmjs.org/package/cors提供的CORS中间件,我已经为所有请求启用了CORS,我已经包含了这样的库:

cors = require('cors')
Run Code Online (Sandbox Code Playgroud)

然后...

app.use(cors()); // this is in my app.configure
Run Code Online (Sandbox Code Playgroud)

当我使用Websore REST工具测试API时,我想要的数据会被撤消,但是当我尝试访问这个时,我的AngularJS应用程序Chrome JavaScript控制台会给我以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource
Run Code Online (Sandbox Code Playgroud)

为AngularJS设置CORS有什么我错过的吗?提前致谢.

Mik*_*Sav 5

Phew,我好像已经修复了......在我的应用程序中,我需要按以下顺序排列要求:

app.use(cors());
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

的app.use(cors());一定要来之前,app.use(app.router);