Ajax图像上载会导致Internet Explorer中出现意外输出

时间:2013-07-03 12:59:11

标签: php jquery file-upload

我已经解决了上传图片的ajax请求,我使用了下面的代码。

<form id="upload" method="post" action="upload.php" enctype="multipart/form-data">
    <input type="file" name="upl"/>
</form>

<script> // all other jquery dependencies are added for ajax file upload 
$(function(){

      $('#upload').fileupload({
      add: function (e, data) {
           var jqXHR = data.submit();    
        },
      success:function(result){
                alert(result);
     }
  });
});
</script>

我的upload.php

<?php if(isset($_FILES['upl'])){
      $file = 'some random name'; // generated using rand functions in php
     if(move_uploaded_file($_FILES['upl']['tmp_name'],$file ))
        echo 'success';
      }
?>

成功之后,我希望jQuery能够提醒success并且它在Chrome和其他浏览器中运行得非常好但是当它涉及到IE 7时它会警告[object Object]作为输出,但我希望它是{{ 1}}

我在哪里弄错了?

2 个答案:

答案 0 :(得分:0)

可能是在IE8和IE7中没有创建JSON对象

在页面中添加JSON.js文件

答案 1 :(得分:0)

在upload.php中,而不是使用

回显输出
echo 'success';

您可以使用函数json_encode返回对象的JSON表示。

这样你就可以用javascript解析json并在你的警报中使用解析后的字符串。 此方法比您正在使用的方法更清晰,并且可能与旧版本的IE兼容(您可能还需要使用JSON.stringify函数将解析后的JSON转换为字符串)。