如何在进行ajax调用时设置Ember Data以使用JSONP数据类型?我将使用Ember和Phonegap,并且需要发出跨域请求。
答案 0 :(得分:7)
覆盖私有ajaxOptions
功能而不是使用jQuery
要容易得多。 Ember的管道包括删除jQuery依赖项。所以这样做:
adapters/application.js
:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
ajaxOptions: function(url, type, options) {
var hash = this._super(url, type, options);
hash.dataType = "jsonp";
return hash;
}
});
如果Ember核心团队可以公开一种公共方法来正式支持这一点(而不是破解私人api),那将是创造。
答案 1 :(得分:4)
您需要创建自己的使用jsonp的适配器,您可以通过扩展当前的适配器来实现,看看。
App.MyAdapter= DS.RESTAdapter.extend({})
然后你需要实现find方法,使用jsonp,可能是这样的
App.MyAdapter= DS.RESTAdapter.extend({
find: function(store, type, id) {
var item;
$.ajax({
url: 'http://api.domain/someModel',
dataType: 'jsonp',
success: function(response){
item = App.someModel.create(order))
}
});
return item;
},
这未经过测试,但它应该让您了解我如何才能完成。 :)