1

私のアプリケーションでは、Ext.Viewport.setMasked 関数を使用しました。適切に表示されている処理マスクを呼び出すと、成功したときに無効になりません。ここに私のコード

    {
    Ext.Viewport.setMasked({
    xtype: 'loadmask',
    message: 'Processing...',
    indicator: true
    });
    var data = Ext.JSON.encode(obj);
    Ext.Ajax.request({
    url: App.gvars.apiurl + 'AddItem', // url : this.getUrl(),
    method: "POST",
    params: data,
    useDefaultXhrHeader: false,
    withCredentials: true,
    success: function (response) {
        var respObj = Ext.JSON.decode(response.responseText);
                 if(respObj[0].response=="Success"){
                 Ext.Viewport.setMasked(false); 
        Ext.Msg.alert("Success", "A new wish has been added To Ur Wish List");
                 viewgiftlist();
                 goitems();
                 }
                 else{
                 Ext.Viewport.setMasked(false);
                 Ext.Msg.alert("Error",respObj[0].errorMsg);
                 }
         },
     failure: function (response)
        {
        Ext.Msg.alert("Error",response.responseText);
       }});
      }

問題を解決するのを手伝ってください

4

2 に答える 2

0

失敗メッセージに setmask(false) を指定しませんでした..成功応答または失敗応答を取得していますか?

于 2013-11-05T19:53:27.527 に答える
0

実際、正しい使い方は Ext.Viewport.setMasked(false); です。

私の推測では、成功条件が正しく機能していないということです。コンソールを使用している場合、これは簡単に修正できるはずです。Chrome を起動し、F12 を押してコンソールを使用します。応答をデコードした後に console.log を使用すると、これを適切にデバッグできます。

var respObj = Ext.JSON.decode(response.responseText);
console.log(respObj);

また、応答の成功部分が配列になる理由がわからない場合、通常、応答は次のようになります。

{"success":true,"data":[{"id":"1","first_name":"Test","last_name":"Test"}],"total":1}

明らかに、好きなように作成できますが、私には奇妙に見えます. 上記の JSON では、条件は次のようになります。

if(respObj.success) {
于 2013-11-07T19:29:40.260 に答える