ajax表单请求无法使用mod_rewrite


ajax form request not working with mod_rewrite

问题是,当使用mod_rewrite重写url时,它不会调用ajax请求。

但当我从链接中删除最后一个斜杠时,它就起作用了。

示例链接:

有了这个url,它就可以工作

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>

BASE_URL定义为:

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

我使用malsum创建的插件jquery表单

形式示例:

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>

这是因为您的相对URI的基已更改。最初,当页面为/user-list.php时,基础为/project,并且浏览器正确地填充与/project/基础的相对链接。但是,当浏览器转到像/project/user-list/这样的页面时,基础突然变成/project/user-list,它试图将其附加在所有相关URL之前,因此没有加载它们。

您可以使链接成为绝对链接,也可以更改页面标题中的URI基(在<head> </head>标签之间):

<base href="/project/">