问题是,当使用mod_rewrite重写url时,它不会调用ajax请求。
但是,当我从链接中删除最后一个斜杠时,它可以工作。
示例链接:
使用此网址
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');
我使用 jquery form 创建的插件 malsum 。
表格示例:
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>
答案 0 :(得分:2)
这是因为您的相对URI的基数已更改。最初,当页面为/project
时,基数为/user-list.php
,浏览器会正确填充/project/
基础的相对链接。但是当浏览器转到/project/user-list/
这样的页面时,基础突然变为/project/user-list
,它会尝试将其附加到所有相对URL之前,因此它们都不会加载。
您可以将链接设为绝对,也可以更改网页标题中的URI基数(在<head> </head>
标记之间):
<base href="/project/">