jQuery UI自动完成与Jsonp源帮助?

时间:2011-05-17 21:10:57

标签: jquery jquery-ui-autocomplete

我有我自己的样本在本地运行,但我不能让它与jsonp源数据连接。它适用于json数据。

我在这里查看了示例http://jqueryui.com/demos/autocomplete/remote-jsonp.html

如果我理解正确的话,jsonp会返回字符串,其中包括对js函数的调用。在上面的示例中,它似乎在返回时不会调用函数。怎么会这样?

在我的示例中,它返回的数据看起来如下,并且在返回时它想要调用js函数myfunc。

myfunc([{"results":[
{"id":"0","name":"Leonor"},
{"id":"1","name":"Terry"},
{"id":"2","name":"James"},
{"id":"3","name":"Benjamin"},
{"id":"4","name":"Regina"},
{"id":"5","name":"Debra"}
],"total":"5"}])

使用上面的示例,它返回如下数据。但请注意,它并没有尝试调用函数jQuery15107172246546687473_1305657637754

为什么我的代码想要调用myfunc,但jquery ui示例不调用jQuery15107172246546687473_1305657637754函数?

jQuery15107172246546687473_1305657637754({"totalResultsCount":1519,"geonames":[{"alternateNames":[{"name":"Yar","lang":"en"},{"name":"Jar","lang":"no"},{"name":"ЯР","lang":"ru"}],"countryName":"Russia","adminCode1":"80","fclName":"city, village,...","score":28.82040023803711,"countryCode":"RU","lng":52.1052778,"adminName2"
...
,"lat":55.019887,"adminName1":"Novosibirsk","population":0}]});

要完成,我将包括jquery ui示例代码view-source:http://jqueryui.com/demos/autocomplete/remote-jsonp.html

1 个答案:

答案 0 :(得分:0)

解决 使用jsonp格式调用时,查询字符串包含一个回调参数。在服务器端,使用此回调参数将此回调参数预先添加到json输出中非常重要。

如上例所示,动态生成的回调是jQuery15107172246546687473_1305657637754,因此解决方法是确保此参数前置我的json字符串。