【问题标题】:jQuery autocomplete - request doesn't get sentjQuery自动完成 - 请求没有被发送
【发布时间】: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


【解决方案1】:

您在屏幕截图中的net 标签指向JS 请求,它应该指向XHR 请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2010-10-25
    • 1970-01-01
    • 2015-04-04
    • 2011-07-30
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多