【问题标题】:jQuery autocomplete works on test webserver but not on production webserverjQuery 自动完成功能适用于测试网络服务器,但不适用于生产网络服务器
【发布时间】:2012-05-11 04:33:13
【问题描述】:

我正在尝试为我的公司网站实现 jquery 自动完成功能,结果发现虽然在我的本地网络服务器上一切正常,但当我将其上传到生产网络服务器时却无法正常工作。我已经完成了确保所有必需文件都正确上传和配置的典型故障排除例程,因此我可以放心地将其作为问题的根源丢弃。

使用 FireBug 查找发生了什么的线索,我查看了我的 HTTP 标头,发现在我的本地网络服务器和生产网络服务器上,请求标头似乎是相同的。这是请求标头:

接受 application/json, text/javascript, /; q=0.01 接受编码 gzip,放气 Accept-Language en-us,en;q=0.5 连接保持活动 内容长度 56 内容类型应用程序/x-www-form-urlencoded;字符集=UTF-8 饼干 pemco_tpl=pemco; __utma=249376134.120577909.1319559821.1335888590.1335890492.201; __utmz=249376134.1335369030.191.2.utmcsr=google|utmccn=(有机)|utmcmd=有机|utmctr=(未提供%20); __utmc=249376134; csrf_cookie_name=822b8ced4d8a7bc49d02b11f44efcb15; ci_session = UmYHbQs0VmsGfQckUDxRYwMyAD8Fc1UgXGUNdQMrVT0BbQxpXANWawIzVSdaalcjATtTMFUxBz5TcANkVjBabVE8DmdQaVA0VGYKOAxtUmdSMgdlCzdWYAY2B2BQPlFrA2AAYQUyVWZcZA0zA2BVZwE0DGZcZVZkAjZVJ1pqVyMBO1MyVTMHPlNwA29WcloDUWwOYVBvUCNUMgpyDH9SJFI8ByQLOlZgBjIHbVAkUWADMgA1BX9VYlwyDTIDdlVnATIMKVxtVjECZ1UnWmpXIwE7UzJVMwc%2BU3ADc1ZxWjlRfw5aUGpQNlQyCm8MeFIkUjwHJAs6VmYGNAdtUCRRHwNtAH8FOFU%2FXGwNZwN3VWEBLAw3XHxWKgIAVWxaP1c0AW5TdFVwByRTHANSViJaalEjDjRQMFBxVAAKTgxbUjBSMwdsCyBWIwZwB21QN1FjAywANQV4VXNcRw1jAztVPwFtDChcblYyAmZVNVphV2EBMVMyVSMHQlM7A3RWZ1o6UWIOfVAkUGBUZgovDDxSJFI8ByQLOlZgBjUHbVAkUT4DYwB2BSVVDFxhDWUDLFU9AXQMblwoVnsCdVU%2BWjhXagEwUzBVMAcxU2oDP1YyWmhRNA41UDBQLA%3D%3D; __utmb=249376134.2.10.1335890492 主机 www.pemco.com.pa 推荐人http://www.pemco.com.pa/ 用户代理 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0 X-Requested-With XMLHttpRequest

但是,响应标头有很大不同。这是我本地网络服务器的响应标头:

连接保持活动 内容长度 289 内容类型 text/html 日期 2012 年 5 月 1 日星期二 15:48:05 GMT 保活超时=5,最大值=100 服务器 Apache/2.2.21 (Win32) PHP/5.3.9 设置 Cookie csrf_cookie_name=3473477c216fd9456d709fb0dbda10e1; expires=星期二,2012 年 5 月 1 日 17:48:05 GMT;路径= / ci_session = 4cmpiXkC37H53h8PD3hIRPObPeip0rCTEEYg5CDilBAi7k9J%2BesxJbu21Ls2Kbo8vSrW3ptOtEGNL1K8pGxI6%2BG1D8ZNd7%2BYiwNQG55MBRz7sAvwtIX7hVDPlyglV3DZwlOH0eCSlPFm7ZmdH46KTnwbd3%2FcftOykBlJZKlNHpdY9obcKVnYTVaCAta3fFGiM4K%2FfoqlIz%2FPCpn9Kfghv8r7fjJ7z17H8huuoWE%2FI0EmTWyag3wJxrshi80ab7JZ1c73f7cIZTpTKn7bMFB4vm9cSgu6XXBFw%2Fmx2bAoawmQHRMhQFHtBZaLcHZGHCrPwLcX3qr8KwxzfwpvKN7TzEX0GpQHJZL72CwAEA8cJ27EfzBfzx1qz8KQ4VL1W1Hq;路径=/ X-Powered-By PHP/5.3.9

这是来自我的生产网络服务器的响应标头:

连接保持活动 内容长度 0 内容类型 text/html 日期 2012 年 5 月 1 日星期二 16:41:51 GMT 保活超时=15,最大值=90 MS-作者-Via DAV 服务器阿帕奇 设置 Cookie csrf_cookie_name=822b8ced4d8a7bc49d02b11f44efcb15; expires=星期二,2012 年 5 月 1 日 18:41:51 GMT;路径=/ X-Powered-由 PleskLin 提供

我可以清楚地看到来自生产网络服务器的响应标头返回的 Content-Length 为 0,但我的问题是为什么?正如我之前提到的,我非常有信心我的所有脚本都已正确上传和配置,因此它必须是我的生产网络服务器上某种类型的配置,它以某种方式影响了我的脚本。我的公司网站的 URL 是www.pemco.com.pa,以防您自己检查。我真诚地感谢您为解决此问题提供的任何帮助。我完全被困在这一点上,不知道该怎么办。

【问题讨论】:

  • 自动完成搜索的 ajax 请求指向 pemco.com.pa/index.php/search/suggestions - 这看起来像是一个不正确的 URL - 它不应该是 pemco.com.pa/search/suggestions 吗?
  • 两台服务器上的 jQuery 版本相同?
  • 感谢您的 cmets。 ajax 请求的 url 是正确的。它不是您的标准 url,因为我使用 codeigniter 作为我的 php 框架,并且 index.php 文件后面的斜线段指向检索内容以填充自动完成文本输入的控制器/函数。
  • jquery 脚本文件是从 Google 的 CDN 中检索出来的,所以使用的 jquery 版本之间没有差异。
  • 在处理 AJAX 请求的 PHP 中是否产生了任何错误?正在进行 ajax 调用,它只是没有返回任何内容,所以我猜测 PHP 中存在未捕获的错误 - 请检查您的错误日志。

标签: jquery autocomplete


【解决方案1】:

问题已解决。问题是我的生产网络服务器使用的是 PHP v5.1,并且直到 PHP v5.2 才包含对 JSON 的本机支持。使用 PECL 安装 JSON 扩展后,我设法解决了这个问题。感谢大家的反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2013-12-05
    相关资源
    最近更新 更多