0

Internet Explorer で jQuery AJAX を使用すると問題が発生します。コード スニペットは次のとおりです。

$('#upload-button').live('click', function() {
    // Get next upload server
    $.get('http://api.site.com/?sub=next_upload_server', function(resp) {
        // Set uploadify server setting
        resp = $.parseJSON(resp);

        $('#file-select').uploadify('settings', 'uploader', 'http://' + resp.server + '.site.com/upload.php');

        console.log($('#file-select').uploadify('settings','uploader'));

        // Start uploads
        $('#file-select').uploadify('upload', '*');
    });

    // Switch out the form for upload progress
    $('#upload-form').animate({opacity: 0}, function() {
        $('#progress-container').fadeIn('fast');
    });
});

このコードは、Chrome、Firefox、および Safari で機能します。ただし、Internet Explorer では動作しないようです。alert("test")通話の直前に行を入れる$.get()と、それが表示されます。$.get()呼び出しの関数に入れても、そうではありません。呼び出しの後$.get()(アップロードの進行状況のフォームを切り替える前) に配置すると、アラートが表示されます。

この AJAX 呼び出しが Internet Explorer で機能しない理由はありますか? 私が言うことができる限り、そうすべきです。Internet Explorer 7 から 9 でテストしました。ページをロードしたり、このメソッドを実行したりしても、Javascript エラーは発生しません。

ありがとうございました。

編集:さらにデバッグした後http://api.site.com/?sub=next_upload_server、IE で直接アクセスすると、ファイルをダウンロードするように求められます。そのファイルをメモ帳で開くと、期待どおりの AJAX 応答が表示されます。それと何か関係があるのでしょうか?

4

2 に答える 2

0

$.getJSON()またはを使用してみてください$.ajax({ dataType: 'json' ... });

于 2012-06-15T13:19:29.517 に答える
0

問題はサーバー スクリプトにあると思われます。次のヘッダーを送信してみてください。

header("content-type:application/json;charset=utf-8");
于 2012-06-15T01:45:34.970 に答える