2012-06-15 129 views
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下,它似乎並沒有工作。如果我在$.get()調用之前放置alert("test")行,它會顯示它。如果我把它放在$.get()調用的函數中,它不會。如果我在撥打$.get()之後(在將表單上傳到上傳進度之前),它會顯示警報。

是否有任何理由這個AJAX調用不能在Internet Explorer中工作?據我可以告訴它應該。我已經在Internet Explorer 7到9中對它進行了測試。當我加載頁面或運行此方法時,也沒有Javascript錯誤。

謝謝。

編輯:更多的調試後,如果我去http://api.site.com/?sub=next_upload_server直接在IE瀏覽器,它會提示我下載的文件。當我在記事本中打開該文件時,我看到了我預期的AJAX響應。這可能與它有關嗎?

+0

你有一個活頁,我們可以看一看? :o –

+0

不幸的是,這是所有本地主機,但我有我的未來域與虛擬主機和我的主機文件設置,因此它就好像它是活的。 –

+0

這會給你帶來什麼? '$ .get('http://api.site.com/?sub=next_upload_server',function(resp){console.log(resp); });' – Terry

回答

0

我覺得問題可能出在服務器腳本,嘗試發送以下標題:

header("content-type:application/json;charset=utf-8"); 
+0

仍然無法正常工作,並且我已驗證該頭文件是使用開發人員工具發送的。 :( –

0

嘗試使用$.getJSON()$.ajax({ dataType: 'json' ... });