使用ember.js时使用Access-Control-Allow-Origin错误(使用ember-cli)

时间:2015-05-10 03:20:12

标签: javascript http ember.js

这是(app / routes / customers.js)中的路线:

export default Ember.Route.extend({
  model: function() {
    return $.getJSON("http://127.0.0.1:3000/odata/customers");
  }
});

这是我的router.js:

export default Router.map(function() {
  this.route('customers', {path: '/'});
});

http://127.0.0.1:3000/odata/customers是我的api,但当我打开http://localhost:4200/时,ember-cli会使用http://localhost:4200/

在控制台中,错误消息是: XMLHttpRequest cannot load http://127.0.0.1:3000/odata/customers. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

我找到了一篇文章:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

所以我知道什么是错的,但是在使用ember.js时我不知道如何修复它。

抱歉我的英语很差,希望能说清楚......

1 个答案:

答案 0 :(得分:7)

这不是Ember的问题。它是端口3000上的服务器。如果您的Ember应用程序在不同的端口上运行,它基本上是跨域的,因此端口3000上的服务器必须启用CORS。对于节点js和express,这样的示例是这样的:http://enable-cors.org/server_expressjs.html您需要弄清楚如何为后端执行此操作。但它归结为基本上只是将正确的标题添加到响应流中。

其他一些例子:

http://enable-cors.org/server_iis7.html

http://enable-cors.org/server_php.html