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

を使用して出力をエコーする代わりに、upload.php で

echo 'success';

関数json_encodeを使用して、オブジェクトの JSON 表現を返すことができます。

このようにして、json を JavaScript で解析し、解析された文字列をアラートで使用できます。このメソッドは、使用しているメソッドよりもクリーンで、古いバージョンの IE と互換性がある可能性があります ( JSON.stringify関数を使用して、解析された JSON を文字列に変換する必要がある場合もあります)。

于 2013-07-03T14:56:38.587 に答える
0

IE8 と IE7 では JSON オブジェクトが作成されない可能性があります

ページに JSON.js ファイルを追加する

于 2013-07-03T13:15:21.917 に答える