2016-09-20 64 views
0

我是codeigniter中的新成员。我在写代码。 AJAX响应没有返回。AJAX响应没有在codeigniter中返回

这里是我的控制器:

public function getValue() 
    { 
     $this->load->helper('url'); 

     $data = array(
     'username' => $this->input->post('username'), 
     'email'=>$this->input->post('email'), 
     'address'=>$this->input->post('address') 
     ); 
     echo json_encode($data); 
     die; 
    } 

,它是视图代码:

$(document).ready(function() { 
    $('#btn_submit').on("click", function(event){ 
     event.preventDefault(); 
     var username = $('#username').val(); 
     var email = $('#email').val(); 
     var address = $('#address').val(); 

     $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>" + "index.php/MyApp/getValue", 
      dataType: 'json', 
      async:true, 
      crossDomain:true, 
      data: {username: username, email: email, address: address}, 

      success: function (data) { 
         console.log(data); 
        }, 
        error: function (data) { 
         console.log('error'); 
        } 

     }); 

    }); 

}); 

我是新与笨,所以我不知道怎么回的响应,并与AJAX工作。我已经编写了Web的帮助,但仍然出现错误。请指导我如何解决这个问题。谢谢

+0

'URL: “<?PHP的回波BASE_URL();>的index.php/MyApp的/的getValue”,'会做同样顺便说一句: ) – NDM

+0

打开你的浏览器检查器,并检查ajax调用是否被触发以及它得到的响应 – NDM

回答

1

简单的答案删除die;getValue()函数。

Codeigniter实际上不会输出任何内容,直到控制器完成执行后。对die;的调用会使框架的正常运行短路,所以没有任何结果。换句话说,echo json_encode($data);从来没有真正发生过。

0

请在设置下面的回复内容类型后尝试。

header('Content-Type: application/json'); 
echo json_encode($data); 
die; 

Ajax响应预计JSON数据,因为代码中设置dataType: 'json'