JSONP 与 JSON 完全不同。正如其他人所说,JSONP 是一个跨服务器。
JSON 是从您自己的服务器获取数据的更好方法,并且更容易在所有浏览器中进行翻译和工作。
返回的是一个item数组,相对格式为:
[{label: '', description: ''}, { //etc }]
标签用作显示名称,除非您带回额外的数据(如 ID),否则它将是用于在自动完成中选择项目的唯一数据。
使用诸如select
您可以使用的函数ui.item.id
(id 将与上面定义的数组一起返回)并使用它从列表中选择唯一的项目,以执行进一步的 AJAX 函数。
编辑:
要使用 pass-backed vars 来更改菜单的显示,您需要编写自己的displayMenuItem
函数来利用上面定义的数组中的 vars。
进一步编辑:
他们实际上这样做的方式是双向的。远程服务器只是传回一个回显的 JSON 格式数组,就像上面定义的那样,没有别的(除了标题)。之后,JQuery 只是对数组进行排序并填充数据。
所以在 PHP 中这样做的一个例子:
echo json_encode(array('name' => 'whoop'));
从字面上看,这就是远程服务器端...
再次编辑我忘记了用 JSONP 发送的回调