0

我已经解决了上传图片的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]作为输出发出警报,但我希望它是success

我在哪里做错了?

4

2 回答 2

0

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

在您的页面中添加 JSON.js 文件

于 2013-07-03T13:15:21.917 回答
0

在 upload.php 中,而不是使用回显输出

echo 'success';

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

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

于 2013-07-03T14:56:38.587 回答