这是(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时我不知道如何修复它。
抱歉我的英语很差,希望能说清楚......答案 0 :(得分:7)
这不是Ember的问题。它是端口3000上的服务器。如果您的Ember应用程序在不同的端口上运行,它基本上是跨域的,因此端口3000上的服务器必须启用CORS。对于节点js和express,这样的示例是这样的:http://enable-cors.org/server_expressjs.html您需要弄清楚如何为后端执行此操作。但它归结为基本上只是将正确的标题添加到响应流中。
其他一些例子: