我一直在尝试使用代理进行发布请求。我已经尝试过直接代理,rest和ajax代理,并且无法找到POST请求的工作示例。
另外,我无法确定在运行时为代理生成URL的正确方法是什么,例如,调用函数来返回URL。
答案 0 :(得分:1)
似乎可能无法做到这一点:
http://www.sencha.com/forum/showthread.php?205557-Using-Ext.data.proxy.Ajax-via-a-POST-with-jsonData
答案 1 :(得分:1)
如果查看Ext.data.proxy.Rest的源代码,您将看到 actionMethods 的配置对象。它们没有记录,但您应该能够将其作为代理传递给代理以覆盖它。
例如:
proxy: {
type: 'ajax',
url: 'path/to/foo',
actionMethods: {
create : 'POST',
read : 'POST',
update : 'PUT',
destroy: 'DELETE'
},
reader: {
type: 'json',
rootProperty: 'root',
totalProperty : 'totalCount'
}
}
答案 2 :(得分:0)
最简单的POST请求示例可能是这样的:
var obj = new Object();
obj.userId = username;
obj.password = password;
var data = Ext.JSON.encode(obj);
Ext.Ajax.request({
url : 'http://myservice/auth/login?_type=json', // url : this.getUrl(),
method : "POST",
headers: {
'Content-Type': 'application/json'
},
params : data,
useDefaultXhrHeader : false,
withCredentials: true,
success : function(response) {
Ext.Msg.alert("Success", "Welcome "+respObj.user.name);
},
failure : function(response) {
var respObj = Ext.JSON.decode(response.responseText);
Ext.Msg.alert("Error", respObj.status.statusMessage);
}
});
请注意,您可以根据自己的方便自定义网址。