【发布时间】:2014-02-09 02:35:46
【问题描述】:
如何设置 Ember Data 在进行 ajax 调用时使用 JSONP 数据类型?我打算将 Ember 与 Phonegap 一起使用,并且需要发出跨域请求。
【问题讨论】:
标签: ember.js
如何设置 Ember Data 在进行 ajax 调用时使用 JSONP 数据类型?我打算将 Ember 与 Phonegap 一起使用,并且需要发出跨域请求。
【问题讨论】:
标签: ember.js
重写私有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),那么它将被创建。
【讨论】:
您需要创建自己的使用 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;
},
这没有经过测试,但它应该让您了解如何完成。 :)
【讨论】: