【问题标题】:jQuery get() working on localhost, but not working on remote serverjQuery get() 在本地主机上工作,但不在远程服务器上工作
【发布时间】:2015-06-19 00:13:27
【问题描述】:

我目前正在本地计算机上开发一个 jQuery 应用程序。我正在使用 LAMP 服务器进行开发。我想要做的是,当单击一个按钮时,应该调用一个 jQuery $.get() AJAX 请求,它应该将一些内容从外部 .txt 文件加载到当前页面中。

这是我的主要 HTML 页面:

<!doctype html>
<html lang="en-US">
  <head>
    <!-- some extra head tags are here -->
  </head>

  <body>
    <div class="a">
      <!-- extra content of div with class "a" -->
      <img src="img/beaver.png" alt="Play">
    </div>

    <script src="jquery/jquery-1.11.2.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>

这是我的 jQuery 脚本页面 (script.js):

$(document).ready(function(){
  $(".a img").click(function(){
    $.get("text_file.txt", function(x, y){
      $(".a").after(x);
    });
  });
});

最后,我的 text_file.txt 页面:

<div class="b">
  <!-- content of div with class "b" -->
</div>

当我在本地主机上运行它时(例如http://localhost/index.html),脚本运行良好。但是当我通过 FTP 将它上传到远程服务器上,然后访问该文件时,它不起作用。它甚至不会在控制台中显示任何错误消息。有什么问题?

谢谢你, 阿布拉尔

【问题讨论】:

  • 可以分享链接看看吗?
  • 您是否尝试过硬刷新或隐身/私人窗口?可能是你的 JS 被缓存了
  • 跨域策略是否禁止访问?
  • 我们需要查看您正在使用的 URL 以及本地和远程的文件结构。你的浏览器控制台说什么?有什么错误吗? 404?
  • 在控制台中查看请求。

标签: javascript jquery html ajax


【解决方案1】:

尝试在执行请求的 URL 开头添加一个斜杠,以使其与您的脚本相关:

$(document).ready(function(){
  $(".a img").click(function(){
    $.get("/text_file.txt", function(x, y){
      $(".a").after(x);
    });
  });
});

【讨论】:

  • 您的解决方案有效,但事实证明我实际上需要使用 .html 文件而不是 .txt 文件。当我加载 HTML 代码时,我使用了 .html 文件,它可以工作。谢谢!
  • @Abraar Arique:请注意,如果您将应用程序作为 Web 应用程序托管在非根路径下,此解决方案将不起作用。
【解决方案2】:

html 文件正在本地计算机上的浏览器中运行。 当您执行 $.get() 时,可能会混淆文件的位置,因为它在服务器上。您必须为其提供文件“https://server.com/text_file.txt”的地址,其中 server.com 是您的服务器的地址。

【讨论】:

  • 您通常不会通过绝对 URL 引用同一服务器上的文件。相对或根相对将是正常的方法。
【解决方案3】:

来自关于 $.get() 的 JQuery 文档

如果带有 jQ​​uery.get() 的请求返回错误代码,它将静默失败,除非脚本也调用了全局 .ajaxError() 方法。或者,从 jQuery 1.5 开始,jQuery.get() 返回的 jqXHR 对象的 .error() 方法也可用于错误处理。

【讨论】:

  • 这有什么问题?我确信错误消息会被 ajaxError 方法揭示
猜你喜欢
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 2014-01-15
相关资源
最近更新 更多