我正在嘗試實現一個實時搜索功能,該功能搜索從公共 api 獲取的 JSON 中的鍵,并且我正在使用 Jquery UI 來執行此操作,但是我收到以下錯誤,并且我不確定如何解決此錯誤。未捕獲的類型錯誤:this.source 不是函數<div class="live_search"> <label for="search_player">Search a player </label> <input id="search_player"></div>var request = new XMLHttpRequest()var data;request.open('GET', 'https://cors-anywhere.herokuapp.com/https://fantasy.premierleague.com/api/bootstrap-static/', true)request.onload = function() { if (request.status >= 200 && request.status < 400) { data = JSON.parse(this.response); $(function() { data; $("#search_player").autocomplete({ source: data.elements.first_name }); }); } console.log(data);}request.send();關于導致此錯誤的原因有什么想法嗎?
1 回答

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
如果您檢查自動完成選項的文檔source
,您會發現問題是因為您提供了單個字符串值。
提供字符串時,它需要是有效的 URL,以便插件可以向該端點發出請求以檢索數據來填充控件。
由于您提供的字符串不是有效的 URL 或數組,因此假定它是一個函數。因此,嘗試像函數一樣調用字符串會導致您看到的錯誤。
source
要解決此問題,您需要以所需的格式提供一個值,如上面的文檔鏈接所述。
此外,您可以刪除在函數中定義的 document.ready 事件處理程序onload
,因為它是多余的,也可以刪除單行,data;
因為它不執行任何操作。
- 1 回答
- 0 關注
- 100 瀏覽
添加回答
舉報
0/150
提交
取消