2013-11-11 5 views
2

Я просто хочу спросить, как я могу просмотреть данные из моего запроса ajax? Я просто хочу знать, правильны ли данные.Как получить ответ от запроса ajax?

Вот мой код.

<script type="text/javascript"> 

      var globalBase_Url = "{$base_url}" + "index.php/user_controller/processAdd/"; 

      //alert(globalBase_Url); 

      {literal} 

       $(document).ready(function(){ 

        $('#add_cat').on('click',function(){ 
         $('#add_category').show('slide'); 
        }); 

        $('#submit').on('click',function(){ 

         var name = $('#category_name').val(); 
         var desc = $('#description').val(); 

         console.log(globalBase_Url); 

         $.ajax({ 
          type: 'POST', 
          url: globalBAse_Url, 
          data: {cat_name:name,cat_desc:desc}, //How can I preview this? 
          dataType: 'json', 
          async: false, 
          success: function(d){ 

          } 
         }); 

        }); 

       }); 

      {/literal} 


     </script> 

В моем контроллере у меня есть это.

public function processAdd(){ 

     $cat_name = $this->input->post('cat_name'); 
     $cat_desc = $this->input->post('cat_desc'); 



} 

Я использовал инструменты для обработки хрома и просмотрел его ответ в XHR. Но я не вижу своих данных. Кстати, я использую CodeIgniter

+0

Вы направляете его прямо к своей модели? Это нехороший план, позволяющий контроллеру получить ваш ajax, а затем обработать его –

+0

Хорошо .. Я переведу функцию в своем контроллере. Но как я могу узнать, получены ли мои данные функцией контроллера? – Jerielle

+1

в вашем контроллере помещают что-то вроде этого 'if ($ this-> input-> post)' также не забудьте добавить echo 'json_encode ($ array)', чтобы вы могли получить результат от вашего ajax –

ответ

4

в контроллере:

вы должны иметь что-то вроде этого

public function processAdd(){ 


    if($this->input->post()){ 

    //do something 
    $var1 = $this->input->post('cat_name'); 
    $var2 = $this->input->post('cat_desc'); 

    echo json_encode(array('status' => 'ok')); //must be encode with array to access it in your response as an object since you use DataType:json 
    } 

} 

Затем в Ajax, для получения доступа к ответу

$.ajax({ 
    type: 'POST', 
    url: '/controllers/processAdd', 
    data: {cat_name:name,cat_desc:desc}, //How can I preview this? 
    dataType: 'json', 
    async: false, //This is deprecated in the latest version of jquery must use now callbacks 
    success: function(d){ 
    alert(d.status); //will alert ok 
    } 
}); 
+1

Хорошо, мне просто нужно включить json_encode() благодаря réponse. :) – Jerielle

2

Вы можете использовать инструменты для разработчиков браузера> NETWORK

Chrome: Developer Tools
FireFox: Developer Tools - Network/Fire Bug ->Network

или

в ajax, зарегистрируйте данные на консоли

success: function(d){ 
    console.log(d);// then look at the developer tools -> console 
} 
+0

Ok У меня есть ошибка: Uncaught ReferenceError: globalBAse_Url не определен. Должен ли я повторно объявить свою переменную? – Jerielle

+0

Я вызываю сторонний SMS-API, но все же я не могу получить идентификатор доставки сообщения. Но я вижу ответ ID в источниках рядом с консолью, но он не найден в console.log. мой код '$ .ajax ({ типа: 'GET', URL: 'actualURL', DATATYPE: 'JSONP', crossDomain: правда, CONTENTTYPE: 'приложения/JSON, кодировка = UTF-8', успех: функция (данные) { alert ("Успех:" + data.d); console.log (data.d); } }); ' – Vijayaraghavan

1

попробовать положить

var globalBase_Url = "{$base_url}" + "index.php/user_controller/processAdd/"; 

внутри {literal} tag

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