使用ajax,json和PHP处理提交表单。使用数据库正确处理数据,但此脚本带有alert(data.success),表示data.success未定义。如果我提醒(数据),它会显示我需要的是{"success":"http:\/\/myaddress.com"}
function confirmSubmit() {
$.ajax({
type: 'POST',
url: 'index.php?route=payment/authorize/send',
data: $('#authorize :input'),
beforeSend: function() {
var img = '<?php echo $text_wait; ?>';
$('#authorize_button').attr('disabled', 'disabled');
$('#authorize').before('<div class="wait"><img src="catalog/view/theme/default/image/loading_1.gif" alt="" /> ' + img + '</div>');
alert('Start');
},
success: function(data) {
if (data.error) {
alert('errors...');
alert(data.error);
$('#authorize_button').attr('disabled', '');
}
$('.wait').remove();
if (data.success) {
alert('success! It should redirect.');
location = data.success;
}
else {
alert('it worked... but won\'t redirect...');
alert(data.success);
}
}
});
alert('End');
}
答案 0 :(得分:5)
您不解析响应。 data
仍然是一个字符串。
在dataType: 'json'
选项中设置$.ajax
。
如果在PHP中为响应设置正确的内容类型,那就更好了:
header('Content-type: application/json.');
答案 1 :(得分:0)
尝试添加dataType:'json'或者使用jQuery.parseJson(数据)将数据响应解析为json