我已经阅读和测试了很多关于它的内容,并且无法通过我创建的 REST 服务来使用 JSONP的JQuery 自动完成功能。
这是我的javascript:
$( "#input" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://localhost:8080/Rest/api/suggest/",
dataType: "jsonp",
data: {
jsonpCallback : "p",
q: request.term
},
success: function( data ) {
response( $.map( data.suggestions, function( item ) {
return {
label: item.LABEL,
value: item.URI
}
}));
}
});
},
minLength: 2
});
JSONP 对象将是一个标准的 JSON 对象,包装在
p({});
通过 ?jsonpCallback=p 给 REST API 的回调函数。javascript/html 代码在http://localhost:8888服务器下本地运行。
要查看数据响应,我需要在我的 javascript 中定义“p”回调函数
function p(data){
alert(data.toSource());
}
如果我把它取下来,没有任何效果,但我不明白为什么JQuery 自动完成示例代码在没有任何回调函数的情况下工作,最重要的是为什么下拉结果表单自动完成不显示。为了使下拉自动完成功能起作用,我应该如何处理回调函数?
谢谢大家,丹尼尔