2014-04-20 46 views
1

Im使用AJAX和History.js將單獨頁面中的內容加載到索引頁面中。但由於某種原因,我只能加載.html頁面 - 我如何使這個函數加載.php頁面?如何使用AJAX從.php文件加載內容?

是否在var = urlPath中添加擴展的解決方案?其他想法?

// AJAX LOAD ONKLIK 
$('body').on('click', 'a', function(e) { 
    var urlPath = $(this).attr('href'); 
    var title = $(this).text(); 

    History.pushState({urlPath: urlPath}, title, urlPath); 
    $("#content").load(urlPath);  
    return false; 
}); 

編輯:

我使用不帶擴展名,例如鏈接在頁面加載 'about.html':

<a href="/about">About</a> 

本地測試時產生的網址,瀏覽器:

http://localhost/about 

這就好,但沒有發生當我嘗試以同樣的方式加載一個.php頁面fx'home.php'時 - 沒有任何東西被加載。似乎AJAX/History.js打破了某種程度。

但是 - 如果我添加擴展.PHP的鏈接頁面「home.php」,通過AJAX頁面加載一樣的.html的頁面:

<a href="/home.php">About</a> 

但是這個鏈接將添加擴展.PHP在本地測試瀏覽器:

http://localhost/home.php 

因此,沒有人知道,如果History.js與AJAX工作時,還是我失去了一些東西只接受.html文件?

+0

到底是什麼urlPath'的'價值?如果它以'file://開頭'那麼這就是你的問題。 – Thomas

+0

我在哪裏找到'urlPath'的值? – jan199674

+0

添加'console.log(urlPath);'並查看控制檯(在web開發人員工具或firebug中)或在click處理程序中添加'alert(urlPath)'。 – Thomas

回答

0

從標籤attibute HREF你的函數自動加載的URL

您必須修改此行到PHP文件

var urlPath = $(this).attr('href'); 
+0

我該怎麼做? – jan199674

0

使用此

$('body').on('click', 'a', function(e) { 
    var urlPath = $(this).attr('href'); 
    var title = $(this).text(); 

    History.pushState({urlPath: urlPath}, title, urlPath); 
    //$("#content").load(urlPath);  
    $.ajax({ 
     url: urlPath, 
     dataType: 'html', 
     success : function(response){ 
       $("#content").html(response); 
     } 
    }); 
    return false; 
}); 
+0

仍然無法正常工作 - 是否嘗試將'dataType'更改爲'.php' – jan199674

+0

它不會執行任何操作,在apache服務器上運行它? – dbucki

+0

使用WAMP(Apache)進行本地測試。即使我只在'dataType'中選擇'.php',AJAX仍然會加載.html,但不會加載.php – jan199674

0

最後一次編輯/回答:

我找到了答案m問題 - 實際上問題與AJAX/History.js沒有關係,但與我的本地測試服務器有關。

爲了重寫網址所以鏈接將無延伸地工作,在.htaccess中添加以下規則並將其放在服務器的根目錄下 - 現在如果鏈接看起來像這樣,.html和.php - 頁面將加載<a href="/home">About</a>

選項+的FollowSymLinks

RewriteEngine敘述在

的RewriteCond%{} REQUEST_FILENAME!-d

的RewriteCond%{} REQUEST_FILENAME的.html -f

重寫規則^(。*)$ $ 1.HTML

的RewriteCond%{} REQUEST_FILENAME!-d

的RewriteCond%{} REQUEST_FILENAME -f .PHP

重寫規則^(。*)$ $ 1.PHP