0

对不起我的英语不好。在我的程序中有一个客户端-服务器通信(JSP - Servlet)。当数据发送到服务器时,会出现一个带有消息“请稍候...”的对话框 Dojo。这样可行。但如果答案到来,这个对话框应该被隐藏。

我通过 dialogStats.hide(); 尝试它。这不起作用。我没有得到隐藏的答案,而是对话。可能有 dialogStats 无法访问。

代码:

<script>
require(["dojo/dom", 
     "dojo/on", 
     "dojo/request", 
     "dojo/dom-form", 
     "dojo/json", 
     "dojox/json/query", 
         "dijit/Dialog", 
     "dijit/form/Button",
     "dojo/domReady!"],
 function(dom, on, request, domForm, json, dialog, button){

  var form = dom.byId('aktForm');

  on(form, "submit", function(evt){

    evt.stopPropagation();
    evt.preventDefault();

    var dialogStats = new dijit.Dialog({
                        title: "Blah",
                    style: "width:500px;",
                    content: "<p />Please wait ..." +
                             "<p /><div style=\"align:center; display:block; margin:0px auto; width:100px\"> " +
                             "<img src=\"bilder/loading.gif\" border=\"0\"></div><p />" 
     });
    dialogStats.show();

    request.post("StatsServlet", {

         data: domForm.toObject("aktForm"),
         handleAs: "json"

    }).then(function(response){
        dialogStats.hide();

        var fehler = dojox.json.query("fehlermeldung", response);                       

        if(fehler == ""){
                       // everything is ok
        }
        else {
           // error             

        }

    });
   });
});
</script> 

我怎么解决这个问题?我提前谢谢你。教育

4

1 回答 1

1

就像菲利普说的,你可能会返回一个错误。添加错误函数来处理错误

 request.post("StatsServlet", {

         data: domForm.toObject("aktForm"),
         handleAs: "json"

    }).then(function(response){
        dialogStats.hide();

        var fehler = dojox.json.query("fehlermeldung", response);                       

        if(fehler == ""){
                       // everything is ok
        }
        else {
           // error             

        }

    }, function (error) {
        dialogStats.hide();

    });
于 2013-07-30T19:37:37.840 回答