0

我正在尝试从 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');
        }
4

2 回答 2

0

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

于 2013-01-14T10:43:47.497 回答
0

这是我在我的应用程序中使用的代码。请务必在您的浏览器或选择的工具中使用网络检查器来查看呼叫是否正在处理中。

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

    callback: this.handleLoginCallback,
    scope:this
});
于 2013-01-07T17:11:24.457 回答