当我使用window.close ajax调用不工作?

时间:2013-04-19 06:17:27

标签: javascript ajax json asp.net-mvc-3 jquery

当我点击按钮窗口值发送我的控制器并关闭窗口时,我的页面中有一个小窗口。但是当我使用window.close控制器没有命中。但没有window.close它的命中正确。但我需要那条线来关闭窗口。我如何管理?

我的示例代码如下:

function click() {debugger;
        $.ajax({
            type: 'POST',
            url: 'my url'
            data: { status: $('#Field_Error')[0].checked },
            dataType: 'json',
            success: function (data) {
                alert(data.message);
            }
        });
        window.close();

    }

控制器:

  public ActionResult actionName(bool status)
   {// not hit here

    }

3 个答案:

答案 0 :(得分:3)

从内部成功函数

中调用window.close
   $.ajax({
        type: 'POST',
        url: 'my url'
        data: { status: $('#Field_Error')[0].checked },
        dataType: 'json',
        success: function (data) {
           alert(data.message);
           window.close();              
        }
    });

Ajax本质上是异步的。它不等待ajax完成。所以window.close称为早期没有完成ajax。

答案 1 :(得分:1)

将window.close设为成功,jquery不等待ajax完成,它继续。

function click() {debugger;
        $.ajax({
            type: 'POST',
            url: 'my url'
            data: { status: $('#Field_Error')[0].checked },
            dataType: 'json',
            success: function (data) {
                alert(data.message);
                 window.close();
            }
        });


}

答案 2 :(得分:1)

function click() {
  var myurl=test.php;
    $.ajax({
        type: 'POST',
        url: 'myurl',
        data: { status: $('#Field_Error')[0].checked },
        dataType: 'json',
        success: function (data) {
           alert('successmsg');
           window.close();
        }
      });
   }