2015-12-15 20 views
3

問題是,當mod_rewrite重寫url時,它不會調用ajax請求。ajax表單請求不能使用mod_rewrite

但是,當我從鏈接中刪除最後一個斜槓的作品。

實例鏈接:

有了這個網址,它的工作原理

http://localhost/project/user-list

http://localhost/project/user_list.php

但是當URL看起來像這樣(加斜槓結束)Ajax請求不加工。

http://localhost/project/user-list/

這裏是我的的.htaccess

RewriteEngine On 
RewriteRule  ^user-list/?$    user_list.php     [QSA,L] 

呼籲.js文件看起來像這樣:

<script src="<?php echo BASE_URL; ?>/js/file.js"></script>

define('BASE_URL', 'http://localhost/project'); 

我使用的插件jquery form通過malsum創建:BASE_URL與定義。形式的

例子:

的jQuery:

$('#form_example').ajaxForm({ 
    success: function(result) {  
     alert("success"); 
    }  
});  

HTML:

<form id="form_example" action="process.php" method="post"> 
    <input type="text" name="name" placeholder="Enter your name" /> 
    <button type="submit">Submit</button> 
</form> 
+1

您好,歡迎StackOverflow上。請花一些時間閱讀幫助頁面,尤其是名爲[「我可以詢問什麼主題?」(http://stackoverflow.com/help/on-topic)和[「我應該問什麼類型的問題避免問?「](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/q/156810/204922)。您可能還想了解[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) – mnencia

+0

@mnencia嗨,謝謝。我提出這個問題是否違反了任何規定?如果我這樣做,我很抱歉,只要告訴我錯誤在哪裏。 –

+1

不是。只有我發現你的問題還不夠清楚,所以我給你提供了一些關於如何回答好問題的有用鏈接。 – mnencia

回答

2

這是因爲你相對URI有自己的基地改變。最初,當頁面爲/user-list.php時,基數爲/project,並且瀏覽器正確填充與/project/基數的相對鏈接。但是當瀏覽器轉到/project/user-list/這樣的頁面時,基地突然變成了/project/user-list,並且它試圖在所有相對URL前添加它,因此沒有加載它們。

你可以讓你的鏈接是絕對的,或在您的網頁的標題(插圖中的<head> </head>標籤)更改URI基地:

<base href="/project/"> 
+0

我認爲這是問題,但日產有一個解決方案。非常感謝你,甚至現在當你在爲編寫的評論中,我改變了'現在可以工作完美。再次感謝,我在這篇文章上投了票。 –