data.success не определено - PullRequest
0 голосов
/ 02 июля 2011

Работа над формой отправки с ajax, json и PHP. Данные обрабатываются правильно с БД, но этот сценарий с предупреждением (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 ]

5 голосов
/ 02 июля 2011

Вы не анализируете ответ.data по-прежнему является строкой.

Установите dataType: 'json' в параметрах $.ajax.

Еще лучше, если установить правильный тип содержимого для ответа в PHP:

header('Content-type:  application/json.');
0 голосов
/ 02 июля 2011

Попробуйте добавить dataType: 'json' или проанализируйте ваш ответ данных как json с jQuery.parseJson (data)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...