无论我做什么,我都无法得到警觉(“测试”);显示警报由于某种原因,这个jsonp(虽然它正确地获取数据:http://u.kodingen.com/1JsHcN)从不调用成功函数。
如果我在这里复制并粘贴示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp它可以很好地工作。但我的网址没有。
任何想法?
$("#venue_in").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://x.com/y.php",
dataType: "jsonp",
data: request,
cache: false,
success: function(data) {
alert("test");
response(data);
}
})
},
minLength: 2,
});
答案 0 :(得分:4)
您的网址似乎没有返回有效的JSONP。它与JSON不同。
如果您的常规JSON网址(http://x.com/y.php
)返回JSON,请执行以下操作:
[{'label':'blah blah','value':3},{'label':'foo",'value':42}]
那么相同的JSONP网址看起来像这样:
`http://x.com/y.php?callback=myfunc`
它将返回如下内容:
myfunc([{'label':'blah blah','value':3},{'label':'foo",'value':42}])
您的网址似乎不包括JSONP的“P”部分。
wikipedia's page不是很清楚,但如果你向下滚动到JSONP上的部分,然后仔细阅读它,它应该是有意义的。 (如果有人比维基百科有更好的参考,请发布)。