jquery - Select2 不显示 Ajax 响应,tmdb 数据
问题描述
在将此标记为重复之前,请仔细阅读..
我正在使用 select2 通过 ajax 选择远程数据。
我能够 console.log 并查看返回的数据,但使用 select2 选项不显示响应。
我正在从“themoviedb”api 中搜索电影标题,以将它们作为自动完成建议显示在选择字段上。任何帮助,将不胜感激
<html>
<head>
<title>Movie</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script>
</head>
<body>
Search Movie Title: <select class="search-movie" style="width:300px;"></select>
<script>
$(".search-movie").select2({
minimumResultsForSearch: 10,
ajax: {
delay: 250,
url: 'http://api.themoviedb.org/3/search/movie',
dataType: 'json',
contentType: "application/json",
type: 'GET',
data: function (params) {
var query = {
api_key : 'fe4d662718177607da792694a52e7911',
query: params.term
}
return query;
},
processResults: function (data) {
return {
results: $.map(data.items, function (item) {
return {
text: item.original_title,
id: item.id
}
console.log(results);
})
};
}
},
});
</script>
</body>
</html>
解决方案
我已经尝试过您的代码,问题在于您映射数据的方式。响应是在您访问项目键的结果键中发送的。将 $.map(data.items) 更改为 $.map(data.results) 就可以了
推荐阅读
- python - 向客户端应用发送 Cloud Storage 触发通知
- javascript - 如何根据类别将脚本添加到 wordpress 页面
- java - 用户选择时如何制作列表视图项目的日期,开始时间和结束时间?
- dafny - 如果一个数组从 0 到 i-1 排序,并且 a[i-1] 小于 a[i],为什么 Dafny 不能证明该数组是从 0 到 i 排序的呢?
- python - 使用python读取box.com文件夹中的所有文本文件
- casting - 如何在虚幻引擎 4 中投射对象引用?
- sql - 使用多个员工不工作的过滤过程
- sql - 带有upper关键字的sql in子句的最佳实践
- reactjs - Cytoscape 使用 React 扩展崩溃
- java - 预期会抛出 java.lang.IllegalArgumentException,但没有抛出任何东西