Jquery ajax()弄乱了我的.htaccess mod_rewrite
我正在使用Jquery(Google托管的1.7.1 jquery.min.js代码)执行一个简单的AJAX()请求
代码非常简单:
$.ajax({ type: "POST", url: "../inc/ajax_msgread_sendPM.php", data: "fromuserid=&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中排除…只是不确定如何解决这个问题
只要您网页的当前url是
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",