似乎有很多关于SO的讨论(例如这些问题:A,B,C,D)和其他网站(例如{{ 3}})关于配置Ember以允许跨源请求。这一切都很好,但我宁愿Ember的后端做与远程服务通信的工作(Ember的服务器端组件来发出请求,而不是用户的浏览器)。这记录了吗?有人可以提供一个例子吗?
答案 0 :(得分:1)
我以为我会发现修改支持hwndChildAfter
命令的HTTP服务器很容易。相反,我使用了Ember&CLI的ember serve
标志。它允许您使用远程服务来提供数据。
为了实现这一点,我们假设远程服务器--proxy
在路径foo.com:3000
提供JSON数据。配置控制器以获取数据如下:
/resource
使用这样的模板来调用控制器的动作:
import Ember from 'ember';
function getRemoteResource(store){
var dfd = Ember.$.Deferred();
Ember.$.ajax('/resource')
.done(function(data){
store.createRecord('model', data);
dfd.resolve();
})
.fail(function(err){
dfd.reject(new Error("An error occurred getting data.", err));
});
return dfd.promise();
}
export default Ember.Controller.extend({
actions: {
getResource:function(){
var dataStore = this.store;
return getRemoteResource(dataStore);
}
}
});
假设您的代码位于主机<h2>Remote data example</h2>
<button class="my-button" {{action 'getResource' }}>
Get resource
</button>
上,请启动以下内容:bar.com
。然后,将浏览器打开到加载模板的适当页面(类似于ember serve --proxy http://foo.com:3000
),单击按钮并查看是否已加载远程数据。