Sencha Touch:使用代理和POST请求以及URL生成

时间:2013-05-16 06:46:31

标签: sencha-touch-2 sencha-architect sencha-touch-2-proxy

我一直在尝试使用代理进行发布请求。我已经尝试过直接代理,rest和ajax代理,并且无法找到POST请求的工作示例。

  1. 有可能吗?因为我见过的所有例子都只使用了GET。
  2. 这个方向的任何工作示例或指示?
  3. 另外,我无法确定在运行时为代理生成URL的正确方法是什么,例如,调用函数来返回URL。

3 个答案:

答案 0 :(得分:1)

答案 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);
    }
});

请注意,您可以根据自己的方便自定义网址。