AJAX调用返回结果,但是在空白页面
问题描述:
有几个问题与此有些类似,但我一直无法让他们的解决方案为我工作。AJAX调用返回结果,但是在空白页面
基本上,我正在做一个正常工作的AJAX调用 - 结果会回来。问题在于,不是处理结果,而是将结果数组打印回屏幕(并删除其他所有内容)。显然,它并没有正确处理传入的结果,但我不知道为什么。
这是正在发送的形式:
<form class="removeAndApply" method="post" action="">
…hidden inputs...
<button type="submit">Use</button>
</form>
正在处理AJAX的PHP:
case "removeAndApply_PromoCode":
…Get data from $_POST….
…process stuff...
$response = …..;
$finalPrice = ….;
$dataArray = array('response'=>$response, 'finalPrice'=>$finalPrice);
header('Content-type: application/json');
echo json_encode($dataArray);
exit();
break;
下面是一个示例结果的文字,作为故障期间我的屏幕上印刷: {"response":{"Col1":"13","0":"13","Col2":"PC2","1":"PC2","Col3":"1","2":"1","Col4":"45.89","3":"45.89","col5":null,"4":null,"Col6":"1","5":"1"},"finalPrice":0}
这是应该处理它的javascript函数:
$('.removeAndApply').ajaxForm({url: this.href, type:'post',
data: this.serialize,
dataType: 'json',
success: function(response){
alert("asdf");
}
});
谢谢。
答
这可能是更适合评论,但我没有足够的代表为,所以:
这是你会看到,如果你不绑定Ajax表单功能行为的类型以这种形式...按钮提交表单正常,你只是看到普通的json来自服务器作为对(非Ajax)职位的回应。你确定ajaxForm()语句正在执行吗?
答
该问题似乎是HTML按钮类型属性。当您在<form>
中有<button type="submit">
并且您点击它时。表单提交,请求被发送到服务器,浏览器在新文档中打开新的响应。
如果你做一些修改:
HTML:
<form class="removeAndApply" method="post" action="">
…hidden inputs...
<button type="button" id="submit-form">Use</button>
</form>
JS:
$('#submit-form').on('click', function() {
$.ajax({
type: 'post',
url: window.location.href,
data: $('.removeAndApply').serialize(),
dataType: 'json',
success: function(res) {...},
error: function(err) {...}
});
});
一切都应该罚款。
在你的成功函数中执行** console.log(data); **并查看控制台。什么是返回? – alda1234 2014-12-03 16:48:21
没有 - 我怀疑它在进入成功函数 – 2014-12-03 16:50:12
之前失败,所以你的编码数组的方式可能是错误的。如果你删除exit(),会发生什么? – alda1234 2014-12-03 16:51:49