0

ローカルホスト (Tomcat) にデプロイされている json Web サービスを sencha touch から呼び出そうとしていますが、リクエスト応答が悪く、コンテンツ タイプを削除するとサポートされていないタイプを受け取ります。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 に答える