2011-03-14 63 views
2

今天在一個網站上,我正在處理將jQuery的版本從1.4更改爲1.5.1,但是這導致了一個函數依賴於getJson函數來停止工作,我已經看過API,因爲請求是一個getRequest,我認爲它是向後兼容的。從JQuery 1.4更改爲1.5.1,getJson停止工作

下面是代碼:

function EmailAutoComplete(firstName, lastName, target) { 
    // Query /AutoComplete/Email?FirstName=&LastName= for an e-mail 
    // list and populate the select box target with the results. 
    $.getJSON('@Url.Action("AutoComplete", "Email")', { 
     FirstName: firstName, 
     LastName: lastName 
    }, function(matchingEmails) { 
     var oldVal = target.val(); 
     target.empty(); 
     if (matchingEmails == null || matchingEmails.length == 0) { 
      target.append('<option value="">E-mail address not found</option>'); 
     } else { 
      $.each(matchingEmails, function(key, val) { 
       var selected = (val == oldVal) ? 'selected="selected"' : ''; 
       target.append('<option value="' + val + '" ' + selected + '>' + val + '</option>'); 
      }); 

      if (matchingEmails.length > 1) { 
       target.addClass("multipleEmailsAvailable"); 
      } else { 
       target.removeClass("multipleEmailsAvailable"); 
      } 
     } 
    }); 
} 

有沒有其他人有過這樣的問題嗎?

謝謝, Alex。

回答

4

嘗試使用$.ajax()代替並分配dataType: "text json"

在jQuery 1.5,jQuery的可以從它在 Content-Type頭收到你 需要轉換 數據類型。例如,如果要將 文本響應視爲XML,則 將對「dataType」使用「text xml」。您還可以創建JSONP請求,將 作爲文本接收,並將其解釋爲 jQuery作爲XML:「jsonp text xml」。 同樣,一個簡寫字符串如 「jsonp xml」將首先嚐試 從jsonp轉換爲xml,並且, 失敗,將jsonp轉換爲 文本,然後從文本轉換爲xml。

+0

好吧試試吧,但爲什麼不使用getJson來獲得Json呢? – 2011-03-14 05:38:14

+1

閱讀http://api.jquery.com/jQuery.getJSON/ – Hussein 2011-03-14 05:44:25

+0

謝謝你的工作就像一個魅力。 – 2011-03-14 05:53:39

0

我遇到了同樣的問題。

原來我的json文件無效。

修復我的json文件後,getJson再次像魅力一樣工作。