Ember.js 如何将JSONP数据类型与Ember数据一起使用?
在进行ajax调用时,如何设置Ember数据以使用JSONP数据类型?我将在Phonegap中使用Ember,需要进行跨域请求。您需要创建自己的适配器,该适配器使用jsonp,您可以通过扩展当前适配器来实现这一点,看一看Ember.js 如何将JSONP数据类型与Ember数据一起使用?,ember.js,Ember.js,在进行ajax调用时,如何设置Ember数据以使用JSONP数据类型?我将在Phonegap中使用Ember,需要进行跨域请求。您需要创建自己的适配器,该适配器使用jsonp,您可以通过扩展当前适配器来实现这一点,看一看 App.MyAdapter= DS.RESTAdapter.extend({}) 然后,您需要实现find方法和其他方法,以使用jsonp,可以是这样的 App.MyAdapter= DS.RESTAdapter.extend({ find: function(store
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;
},
这没有经过测试,但它应该让您了解我可以如何做到这一点。:) 重写private
ajaxOptions
函数比使用jQuery
容易得多。Ember的管道包括删除jQuery依赖项。因此,请改为:
适配器/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),这将是一个非常好的选择
这是可行的,因为谢天谢地,在Ember数据中只有一种方法需要定义数据类型。但是,我在这样做时发现,Phonegap不需要使用JSONP,只需要在config.xml中设置域可访问性。这肯定是更好的答案