表单提交的Ajax json响应:IE8中的下载文件

时间:2016-04-08 16:35:12

标签: javascript jquery json ajax internet-explorer-8

我有asp网页负责使用ajax上传文件。

表单的html代码是:

<form method="post" action="ajax/firmwareUpload" enctype="multipart/form-data" id="uploadform" name="uploadform">
    <div class="left">
    <span id="lang502009" title="502009">Firmware File</span>:
        <input name="download image file" id="uploadfilename" type="file">
    </div>
    <div class="right">
    <div class="upload" id="uploadManual">
        <input type="submit" class="button button-blank" value="Upload"/>
    </div>
    </div>
</form>

ajax代码是:

 $("#uploadform").submit(function(e) {
     $.ajax({
     url:  'ajax/firmwareUpload',
     type: 'POST',
     data: new FormData(this),
     processData: false,
     contentType: false,
     enctype: 'multipart/form-data',
     success: function(data) {
         if (data.error) {
         $("body").load("subpage/upgradefail.asp");
         setTimeout(backToIndex, 5*1000);
         }
         else {
         var time = data.return;
         $("body").load("subpage/upgradewait.asp");
         setTimeout(backToIndex, time*1000);
         }
     },
     error: function(data) {
         alert("Operation could not be completed");
     }
     });
     e.preventDefault();
 });

我测试了这个程序:firefox,chrome,opera,safari,IE11,它的工作正常。所以服务器端可以从浏览器接收响应,浏览器可以接收json响应并显示upgradewait.asp。

但是如果我用IE8测试它我会注意到服务器可以接收请求并且很好地完成他的工作但是当ie8接收到json响应时它没有显示upgradewait.asp并且我得到一些下载弹出窗口那。 enter image description here

我下载了这个文件,发现它的内容是json响应。 另外,我添加了一些console.log并警告ajax的成功和错误功能,我发现它无法访问这些响应函数。

我在互联网上搜索了一些有关此问题的信息。因此,据我所知,IE8在理解JSON消息方面存在问题,我应该将内容类型修改为像text / html或application / x-www-form-urlencoded;字符集= UTF-8。我试过了,但任何一个解决方案都解决了这个问题。

让任何人对此有所了解并提出建议。

0 个答案:

没有答案