data.success未定义

时间:2011-07-01 22:02:55

标签: jquery ajax

使用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');

}

2 个答案:

答案 0 :(得分:5)

您不解析响应。 data仍然是一个字符串。

dataType: 'json'选项中设置$.ajax

如果在PHP中为响应设置正确的内容类型,那就更好了:

header('Content-type:  application/json.');

答案 1 :(得分:0)

尝试添加dataType:'json'或者使用jQuery.parseJson(数据)将数据响应解析为json