在链接上执行ajax点击Firefox和Safari
问题描述:
下面的代码在单击链接时执行ajax请求。它首先执行请求,然后遵循href中指定的链接。这在Chrome中运行良好,但在Firefox或Safari中,此类代码无法以我未知的原因成功发布数据。这两种浏览器的解决方法是什么?在链接上执行ajax点击Firefox和Safari
$(".submit-link").click(function(e){
var value=$.trim($(".url-submit").val());
if(value.length>0){
//initialize name and email
$.ajax({
url: "getPOST.php",
type: 'POST',
data: {"id":value,"name":nameValue, "email":emailValue},
success: function(response) {
console.log(response); //nothing gets printed in console when using Firefox or Safari, but in Chrome it works as expected
}
//go to link in href now
});
}else{
//do something else
e.preventDefault();
}
});
答
只是让代码更简单;
$(".submit-link").click(function (e) {
e.preventDefault();
var value = $.trim($(".url-submit").val());
if (value.length > 0) {
//initialize name and email
$.ajax({
url: "getPOST.php",
type: 'POST',
data: { "id": value, "name": nameValue, "email": emailValue },
success: function (response) {
console.log(response);
window.location = $('.submit-link').attr('href'); //Assumed your element that has submit-link class also contains the href attribute
}
});
}
});
当你完成你的ajax请求后,现在你可以去链接了。
我在函数的开始处添加了e.preventDefault();
。如果值长度大于“0”,则会发出ajax请求,并在ajax请求完成后将用户重定向到链接。
另请检查您的value
以确保其长度大于“0”。
没有if语句,但有一个else语句。你能编辑你的脚本吗? – Qsprec
感谢您通知我。 – sanjihan