2017-10-20 71 views
0

我有困难与.load jQuery函数,这是非常令人沮丧,因为它似乎应该工作。我正在尝试将html内容加载到div中。当url参数设置为存在于我的服务器上的文件时,它工作正常,这意味着div加载了内容。 但是,如果我有意将url参数设置为我的服务器上不存在的文件,如下所示,它仍会以“内容加载成功”的形式返回。JQuery加载回调函数总是返回'成功'

$(document).ready(function() 
{ 
    var divaboutMe = $('#aboutMe'); 
    var url = "dave.txt"; 
    divaboutMe.load(url, function (responseText, statusText, xhr) 
     { 
      if (statusText == "error") 
       { 
        alert('Error Loading Content') 
       } 
      else 
       { 
        alert('Content Loaded Successfully') 
       } 
     }); 

}); 

我搜索了堆栈交换这个问题,但找不到任何其他职位是完全相关的。我想知道为什么这不起作用来进一步理解jQuery/Javascript。

编辑#1: 建议我修改了我的代码来显示statusText的实际值,并在奇想上添加了xhr.StatusText的警报,尽管我并不真正知道它会做什么。我还删除了'divaboutMe'变量,并使用jQuery id选择器。这些更新后,我仍然得到相同的结果,这是相当令人生气。我在很多网站和几本自己的书中看到过这些代码,所以我不知道可能会出现什么错误。

下面是更新后的代码:

$(document).ready(function() 
{ 
    var url = "8"; 
    $('#aboutMe').load(url, function (responseText, statusText, xhr) 
    { 
     alert('statusText: ' + xhr.statusText) 

     if (statusText === "error") 
      { 
       alert('Error Loading Content:' + statusText) 
      } 
     else 
      { 
       alert('Content Loaded Successfully:' + statusText) 
      } 
    }); 

}); 
+0

为我回来“加载内容时出错”。 – Keith

+0

当你将它指向一个不存在的文件时,“statusText”是什么?这可能是Keith说的另一个错误消息,它不等于“错误”,因此您的else子句被触发。 –

+0

你好,statusText总是返回'成功'。 –

回答

0

嗯,我想我找到了问题,但解决方案带来了一个更大的问题。我的网站托管在我自己的个人网络服务器上,该服务器具有使用最新版本的Ubuntu的LAMP堆栈。在我的网站的根文件夹中,我有一个.htacces文件,其中包含一个重定向规则,用于将不存在的文件的请求发送回index.php。我禁用了.htacess文件,并确信代码在尝试加载我的服务器上不存在的文件时开始返回“错误”。所以,不知道下一步该做什么,但想要发布,以防其他人遇到这种类型的行为,并有任何建议。这里是我的.htaccess文件的内容:!

RewriteEngine叙述在

的RewriteCond%{} REQUEST_FILENAME -d

的RewriteCond%{} REQUEST_FILENAME -f

的RewriteCond%{REQUEST_FILENAME }!-l

重写规则^(。*)$的index.php?URL = $ 1