jQuery get()在localhost上工作,但不在远程服务器上工作

时间:2015-04-13 15:41:10

标签: javascript jquery html ajax

我目前正在本地计算机上开发一个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>

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

谢谢你, Abraar

3 个答案:

答案 0 :(得分:0)

尝试在您执行请求的网址的开头添加斜杠,以使其相对于您的脚本:

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

答案 1 :(得分:0)

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

答案 2 :(得分:-2)

直接来自$ .get()

的JQuery文档
  

如果使用jQuery.get()的请求返回错误代码,除非脚本还调用了全局.ajaxError()方法,否则它将无提示失败。或者,从jQuery 1.5开始,jQuery.get()返回的jqXHR对象的.error()方法也可用于错误处理。