我有一个需要使用 POST 而不是 GET 调用的服务。我以为我在某处读到我可以简单地在代理上添加方法:'POST'选项,但它似乎没有效果。
Ext.define('Sencha.store.Teams', { 扩展:'Ext.data.Store', 配置:{ 模型:'Sencha.model.Team', 自动加载:真, 代理: { 类型:'ajax', // 方法:'GET', 方法:'POST', 网址:'teams.json' } } });
我有一个需要使用 POST 而不是 GET 调用的服务。我以为我在某处读到我可以简单地在代理上添加方法:'POST'选项,但它似乎没有效果。
Ext.define('Sencha.store.Teams', { 扩展:'Ext.data.Store', 配置:{ 模型:'Sencha.model.Team', 自动加载:真, 代理: { 类型:'ajax', // 方法:'GET', 方法:'POST', 网址:'teams.json' } } });
您必须覆盖 actionMethod 属性
Ext.define('Sencha.store.Teams', {
extend: 'Ext.data.Store',
config: {
model: 'Sencha.model.Team',
autoLoad: true,
proxy: {
type: 'ajax',
actionMethods: {
create : 'POST',
read : 'POST', // by default GET
update : 'POST',
destroy: 'POST'
},
url: 'teams.json'
}
}
});
或定义自己的代理类
Ext.define('Sencha.data.PostAjax', {
extend: 'Ext.data.proxy.Ajax',
alias: 'proxy.postproxy', // must to get string reference
config: {
actionMethods: {
create : 'POST',
read : 'POST', // by default GET
update : 'POST',
destroy: 'POST'
},
}
}
Ext.define('Sencha.store.Teams', {
extend: 'Ext.data.Store',
config: {
model: 'Sencha.model.Team',
autoLoad: true,
proxy: {
type: 'ajaxpost'
url: 'teams.json'
}
}
});
免责声明:代码是从头开始编写的,没有经过真正的测试。如果它不起作用,请不要投反对票,然后不要重播您的评论。谢谢。