即使返回错误,ajax也会成功运行

Rob*_*rby 1 php mysql ajax jquery codeigniter

我有一个AJAX脚本,应该在用户登录时将数据插入到mysql数据库中.但是它当前正在运行success函数,即使在控制台中返回'success'=>'false'时也是如此.

她是我的代码

 $(document).ready(function() {

$("#addfav").click(function() {

 var form_data = {heading: $("#vidheading").text(), embed : $("#vidembed").text()};

  jQuery.ajax({
      type:"POST",
      url:"http://localhost/stumble/Site/add_to_fav",
      dataType: "json",
      data: form_data,
      success: function (data){

              alert("This Video Has Been Added To Your Favourites");
          console.log(data.status);

      },

    error: function (data){
           if(data.success == false){
           alert("You Must Be Logged In to Do That");
        console.log(data.status); 


        };
    }
  });
})

}) 
Run Code Online (Sandbox Code Playgroud)

这是php,请记住我的项目是在codeigniter中.

public function add_to_fav(){
 header('Content-Type: application/json');

      $this->load->model('model_users');
      $this->model_users->add_favs();    
} 
Run Code Online (Sandbox Code Playgroud)

这是向db添加数据的实际模型

    public function add_favs(){
     if($this->session->userdata('username')){
     $data = array(
        'username' => $this->session->userdata('username'),
      'title' => $this->input->post('heading'),
      'embed' => $this->input->post('embed')
      );

      $query = $this->db->insert('fav_videos',$data);
      echo json_encode(array('success'=>'true'));
        } else {

         echo json_encode(array('success'=>'false'));
      }

  }    
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议!

Que*_*tin 5

您没有返回错误.

您将返回200 OK数据{"success": "false"}.

您可以在jQuery成功函数中处理它或发送不同的状态代码(看起来403错误适合这里).