我可能在这里遗漏了一些巨大的东西,但似乎我无法重定向我的ajax响应,原因是我真的不理解,有人可以帮助我吗?
以下是代码:
(function($){
function processForm( e ){
$.ajax({
url: 'z1.php',
dataType: 'html',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
data: $("#purchases").serialize(),
processData: false,
success: function(data){
if(data == "success") {
window.location.href = 'zzz.php';
}
if(data == "error") {
window.location.href = 'xxx.php';
}
}
});
e.preventDefault();
}
$('#purchases').submit( processForm );
})(jQuery);
显然如果我取消preventDefault()
ajax帖子甚至不能正常工作,他提交表格但回复不完整......
我只想处理我的表单并使用ajax帖子,并取决于他返回的内容重定向到带有消息的特定网址。
答案 0 :(得分:0)
我认为错误句子可能是
if(data == "success") {window.location.href = 'zzz.php';}
。如果数据成功,您将直接引用。成功必须在一些其他属性中,您需要参考。 Didi你安慰data
你来的样子。它是JSON结构吗?
答案 1 :(得分:0)
尝试将submit()方法中的代码编写为paremeter,并在函数末尾使用return false
(function($){
$('#purchases').submit(function(e){
e.preventDefault();
$.ajax({
url: 'z1.php',
type: 'post',
data: $("#purchases").serialize(),
success: function(data){
if(data == "success") {
alert("success");
document.location.href = 'zzz.php';
}
if(data == "error") {
alert("Error");
document.location.href = 'xxx.php';
}
}
});
return false;
});
})(jQuery);
还要确保服务器仅响应“成功”或“错误”文本。
答案 2 :(得分:0)
$(document).ready(function(){
$("#purchases").submit(function (e) {
e.preventDefault();
$.ajax({
url: 'z1.php',
dataType: 'html',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
data: $("#purchases").serialize(),
processData: false,
success: function(data){
if(data == "success") {
window.location.href = 'zzz.php';
}
if(data == "error") {
window.location.href = 'xxx.php';
}
}
});
});
});
试试这段代码。