【发布时间】:2012-05-01 16:47:36
【问题描述】:
我正在尝试让 jQuery 自动完成指向 PHP 文件(从 MySQL 收集数据)。
首先,我使用 Javascript 数组中的示例数据进行了尝试,它成功了:
var tags = ["a", "ab", "abc", "abcd", "adbce"];
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: tags
});
但是当我指向一个以 JSON 格式返回数据的文件时(按照官方文档),它不起作用。我认为这是 PHP 的问题,但是当我检查 firebug 时发现请求从未被发送过
这是我正在使用的代码:
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: "http://absolutepathtofile/autosuggest.php"
});
还有来自firebug的截图(homepage.js是包含上面自动完成代码的文件):
我可以提供 PHP 代码,但我认为这并不重要,因为问题应该出在 Javascript 中 - 假设我在 autosuggest.php 中使用此测试代码:
$array[0]="test";
$array[1]="test1";
echo json_encode($array);
有人知道这里有什么问题吗?
【问题讨论】:
-
是
http://absolutepathtofile/autosuggest.php来自与当前页面相同的域和协议吗? -
是的,它在同一个域上,我使用绝对路径来确保我没有指向错误的东西。
-
同样的协议?在使用相对 url 时,您实际上更确定使用正确的站点。此外,屏幕截图中的
net选项卡指向JS请求,它应该指向XHR请求。 -
协议是
http部分,如果你的当前页面使用https就不能这样访问了。 -
好的,我让它工作了。我的前提是错误的——正如 red-X 指出的那样,我正在查看 JS 选项卡而不是 XHR 选项卡——请求正在发送,但响应没有,当我使用相对路径时,它得到了修复。现在可以了。红色,如果您想发布您的 cmets 作为答案,我很乐意接受。谢谢。
标签: jquery jquery-ui firebug jquery-autocomplete