2013-05-24 4 views
0

Так моя проблема заключается в том, что данные, возвращаемые в методе успеха не определен ...метод Ajax Jquery неопределенными

Вот мой JQuery код:

$('document').ready(function(){ 



     $('#save').click(function() { 

     var dataString = $("#stepform").serialize(); 

     $.ajax({ 
    url: "<?php echo base_url();?>create/save/<?php echo $row->id; ?>", 
    type: 'POST', 
    data: dataString, 
    success:function(response){ 

     alert(response.status); 

    } 
    });//end ajax 

    return false; 
});//end click 

    }); // end document ready 

И PHP код:

$serverResponse["status"] = 'it worked'; 
echo json_encode($serverResponse); 

И все, что я получаю от response.status, является «неопределенным» ... Я просто не могу заставить его работать! Любые идеи, что я делаю неправильно?

------------- EDIT -------------

Наконец я сумел найти решение недействительным ответ JSon. Если вы используете codeigniter, вы должны написать exit() после json_encode. Что-то вроде этого:

exit(json_encode($yourarray)); 

Если вы просто эхо-сигнал, то он дает ошибку синтаксического анализа.

+1

Вы создаете свой php-массив где-то – Ven

ответ

1

jQuery может не правильно угадать, что вы возвращаете JSON. Установите dataType: "json" свойство на объекте $.ajax аргумента, или добавить

header("Content-type: application/json"); 

на ваш PHP скрипт перед выбросом, или обоих.

+0

Когда я добавляю dataType: предупреждение «json» даже не срабатывает ... –

+0

@VxsdfsdfAzcxzc в этом случае у вас может быть ошибка/уведомление/предупреждение в вашем PHP-коде или вы печатают что-то другое, кроме JSON. Вы получили сообщение об ошибке в консоли? –

+0

Когда я просматриваю свой запрос, отправленный с помощью хром-инструментов для разработчиков, я вижу, что он говорит «status ok code 200», а на вкладке предварительного просмотра говорится: «{« status »:« it works »}« В консоли нет ошибок. –

Смежные вопросы