我必须在我的网站上使用<base href="http://www.mysite.com/it/"/>
,因为我使用的是apache mod_rewrite,如果我没有放置基础href标记会导致问题。
但问题现在出现在这个jQuery函数中:
$(document).ready(function(){
$("#submit_newsletter").click(function(){
var hasError = false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var nameVal = $("#name").val();
if(nameVal == '') {
$("#name").addClass("highlightError").delay(4000).queue(function(){
$(this).removeClass("highlightError");
$(this).dequeue();
});
hasError = true;
}
var subnameVal = $("#subname").val();
if(subnameVal == '') {
$("#subname").addClass("highlightError").delay(4000).queue(function(){
$(this).removeClass("highlightError");
$(this).dequeue();
});
hasError = true;
}
var emailVal = $("#email").val();
if(emailVal == '') {
$("#email").addClass("highlightError").delay(4000).queue(function(){
$(this).removeClass("highlightError");
$(this).dequeue();
});
hasError = true;
} else if(!emailReg.test(emailVal)) {
$("#email").addClass("highlightError").delay(4000).queue(function(){
$(this).removeClass("highlightError");
$(this).dequeue();
});
hasError = true;
}
var messageVal = $("#message").val();
if(messageVal == '') {
$("#message").addClass("highlightError").delay(4000).queue(function(){
$(this).removeClass("highlightError");
$(this).dequeue();
});
hasError = true;
}
if(hasError == false) {
$.post("mail.php",
{ name: nameVal, subname: subnameVal, email: emailVal, message: messageVal },
function(data){
$("#results").text("Messaggio Inviato.").delay(4000).queue(function(){
$("#results").text("")
$(this).dequeue();
});
$('#newsletter')[0].reset();
}
);
}
return false;
});
});
当我删除基本href标签时它工作得很好,当我使用它时(我重复一遍,我必须使用它)上面的jQuery函数停止工作。 它不会给出任何错误,只是它不会将任何值传递给mail.php文件,也不会返回任何结果。
如何使用基本href标记修复此jQuery问题?
感谢。
答案 0 :(得分:2)
我认为你不会在重写中重写你的查询字符串。现在,url将是这样的,因为jQuery $ .post默认类型是GET方法:
mysiste.com/it/?param1=value1
您可以使用以下类型:&#34; post&#34;在jQuery中不使用查询字符串。
如果你想保留你的GET方法,RewriteRule应该是这样的:
RewriteRule ^/it/$ /mail.php [QSA,L]