Sencha触摸问题调用json webservice

时间:2012-10-22 06:31:55

标签: json sencha-touch extjs sencha-touch-2 sencha-architect

我正在尝试从sencha touch调用部署在localhost(Tomcat)中的json Web服务,但是我收到了错误的请求响应,当我删除内容类型时,我收到不支持的类型。请帮助我提供从sencha touch消费json服务的确切代码。

这是代码,

 Ext.Ajax.request({
        url:'../service/login.json',
        headers: {
        "Content-Type": "application/json"
    },
        method:'POST',
        params:{email:Ext.getCmp('login_field').getItems().items[0].getValue(),password:Ext.getCmp('login_field').getItems().items[1].getValue()},
        success:function(res,req){
            alert(res.reponseText);
            var data  = Ext.decode(res.responseText);
            if(data.responseMessage){
                Ext.getCmp('login_field').getItems().items[0].reset();
                Ext.getCmp('login_field').getItems().items[1].reset();
                if(!Ext.getCmp('MainPanel')){
                    Ext.Viewport.add({xtype: 'MainPanel'});
                }
                Ext.getCmp('MainPanel').show({type:'slideIn',direction:'left'});
                Ext.getCmp('LoginPanel').hide();

            }
    else{

            Ext.Msg.alert('Health Track','Invalid Login');
        }

2 个答案:

答案 0 :(得分:0)

以下是我在我的应用中使用的代码。请务必在浏览器或所选工具中使用网络检查器,以查看是否正在处理呼叫。

Ext.Ajax.request({
    url: http://www.example.com,
    withCredentials: false,
    useDefaultXhrHeader: false,
    params: {
        login: foo@bar.baz,
        password: *******
    },

    callback: this.handleLoginCallback,
    scope:this
});

答案 1 :(得分:0)

这取决于您的服务所消耗的费用。产生。你必须指定'Content-Type':'application / json',如果你想要达到正确的终点(接受json)。如果你想获得JSOn响应,你必须发送“Accept”标题,否则你将获得默认类型(在大多数情况下是xml)。或者你也可以使用hal在url中传递“_type = json”或者在url中附加“.json”来获取json响应。