2013-03-31 38 views
3

我試圖在不使用回調的情況下使用jQuery.autocomplete。我的JSON數據源存儲在JS變量中。這一點是爲了避免發出發球。jQuery UI自動完成返回「Request-URI太大」

但是當我嘗試使用自動完成,我不斷收到錯誤消息

請求URI太大

這是我的代碼:

// This list is much longer 
country_data_source = [{"id":"AF","name":"Afghanistan"},{"id":"AL","name":"Albania"},{"id":"DZ","name":"Algeria"},{"id":"AS","name":"American Samoa"},{"id":"AD","name":"Andorra"},{"id":"AO","name":"Angola"}] 

jQuery("#country").autocomplete({ 
    minLength: 0, 
    source: country_data_source 
}); 

是jQuery的仍在使用由於瀏覽器限制,POST/GET因此給我這個錯誤?

* 注意:*如果我只是使用上面的短名單,autocomplete根本沒有響應。
偶試過$.getJSON(country_data_source)

+0

發送到服務器的實際請求是什麼? – jwueller

+0

看起來數組被視爲字符串,'autocomplete'將其用作URL(可能過長)。 –

+0

您是否嘗試刪除'數據類型'鍵?在鏈接的例子中,他們似乎沒有使用它,也許這會觸發請求? – thaJeztah

回答

4

自動完成功能可能不理解你的陣列作爲本地源,因爲它不是由每個都由一個「標籤」和「值」屬性的對象。在你的情況下,你提供了一個不符合預期的ID和名稱。 您必須轉換此數組的對象,或者您可能只提供將用作標籤的字符串數組。 由於jQuery UI Autocomplete在您的數組中找不到要搜索的內容,它會切換到下一個解釋:一個url。

+0

啊,很好。謝謝 :) – Steven