即responseText未完成

时间:2013-09-23 19:15:15

标签: jquery internet-explorer internet-explorer-9

我在FF,Safari中有一个有效的上传进度条,但不是IE。

基于jquery.form,表单被提交,但是当上传完成时,PHP应用程序会发送一个全新的页面,该页面将在xhr.responseText中接收。响应将放在新文档中。

这适用于FF,...

在IE上,responseText以“\ n< table class = ...”开头,即< body>内的文本。标记(而不是整个< html> ...< / html>页面。)

发生了什么事?我该怎么办才能让IE保留响应中的所有标签?

更新:

我正在使用:

  • jQuery表单插件
  • 版本:3.35.0-2013.05.23

连接起来的jq看起来像:

    $('#JQF').ajaxForm({
      dataType:  'html',
      beforeSend: UP.start,
      success: UP.stop
    });

UP.stop:
function (html, status, xhr) {
  startTime = null;
  setTimeout(function () {
    jsonForm.success(html, status, xhr);
  }, 10);
}

jsonForm.success:
function(responseText, statusText, xhr, elt)
/*
1.) responseText or responseXML value (depending on the value of the dataType option).
2.) statusText
3.) xhr (or the jQuery-wrapped form element if using jQuery < 1.4)
4.) jQuery-wrapped form element (or undefined if using jQuery < 1.4)
) 
*/ {
  if (typeof responseText === 'string')
  {
    if (/<html>/i.test(responseText))
    {
      jsonForm.reloadMain(responseText);
    }
    else if (responseText)
    {
      alert(responseText);    <<<========== this is executed.
    }
  }
  else if (responseText && typeof responseText === 'object')
  {// decode and execute jquery instructions
    jsonForm.responseEval(responseText, {});
    jsonForm.init(); // in case we loaded something with a jsonForm in it
  }
}

更新2:

要关闭使用限制返回的iframe,必须包含ajaxForm选项iframe:false。

1 个答案:

答案 0 :(得分:0)

这是野鹅追逐的一部分。

使用setTimeout(updateinfo,2)启动脚本确实有效;然后继续提交表格。