2017-10-20 46 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