我正在使用Jquery执行简单的AJAX()请求(Google托管的是1.7.1 jquery.min.js代码)
代码非常简单:
$.ajax({
type: "POST",
url: "../inc/ajax_msgread_sendPM.php",
data: "fromuserid=<?php echo $fromuserid; ?>&pmSubject=<?php echo urlencode($pmSubject); ?>&pmBody=" + pmReply,
success: function(data){
$("#showSuccess").show("fast");
$("#resultResponse").html(data);
}
});
本文档的mod_rewrite .htaccess是:
RewriteRule ^messages/read/([^/]+)/([^/]+)/?$ /msgread.php?usernam=$1&keynode=$2 [QSA,L]
当我因某种原因查看$ resultResponse时,Ajax一直希望将$ 1变为'inc',因此任何使用URL中$_GET["usernam"]
的无关(或相关)mySQL查询都会返回'inc'
为什么会这样?我的脚本和mod_rewrite之间没有关系。脚本(或网站上的任何地方)没有名为“usernam”或“1”的变量。
Firebug没有帮助。
建议吗?
更新:
我在ajax jquery代码中看到问题的来源......
url:“../ inc / ajax_msgread_sendPM.php”,
“inc”一直被设置为用户名,因为它的位置基于mod_rewrite规则......我需要以某种方式将其从mod_rewrite中排除...只是不确定如何解决这个问题
答案 0 :(得分:1)
只要您网页的当前网址为
www.domain.com/messages/read/username/NQ
并使用相对路径 - 正在将其重写为
www.domain.com/messages/read/username/inc/ajax_msgread_sendPM.php
绝对不是你想要的。最简单的解决方案是将ajax端点URL更改为:
url: "/inc/ajax_msgread_sendPM.php",