Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 即使返回错误,ajax也始终运行成功_Php_Jquery_Mysql_Ajax_Codeigniter - Fatal编程技术网

Php 即使返回错误,ajax也始终运行成功

Php 即使返回错误,ajax也始终运行成功,php,jquery,mysql,ajax,codeigniter,Php,Jquery,Mysql,Ajax,Codeigniter,我有一个AJAX脚本,当用户登录时,它应该将数据插入mysql数据库。但是,它当前正在运行success函数,即使控制台中返回“success”=>“false” 她是我的密码 $(document).ready(function() { $("#addfav").click(function() { var form_data = {heading: $("#vidheading").text(), embed : $("#vidembed").text()}; jQuery.a

我有一个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); 


        };
    }
  });
})

}) 
这里是php,记住我的项目是在codeigniter中

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

      $this->load->model('model_users');
      $this->model_users->add_favs();    
} 
这是向数据库添加数据的实际模型

    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'));
      }

  }    

谢谢你的建议

您没有返回错误

您正在返回一个
200ok
,数据为
{“success”:“false”}


您可以在jQuery success函数中处理这个问题,也可以在这里处理(看起来很合适)。

您没有返回错误

您正在返回一个
200ok
,数据为
{“success”:“false”}


您可以在jQuery success函数中处理这个问题,也可以在这里处理(看起来很合适)。

您必须记住异步请求发生的错误和PHP后端发生的错误是不同的。错误发生在PHP级别,PHP返回javascript前端所需的有效HTML。您需要检查返回的JSON中的“success”变量是否为true。

您必须记住异步请求发生的错误和PHP后端发生的错误是不同的。错误发生在PHP级别,PHP返回javascript前端所需的有效HTML。您需要检查返回的JSON中的“success”变量是否为true。

如果您的脚本返回
数据
,则在AJAX中被视为成功。@Blazemonger-不,不是。如果HTTP状态代码不是错误,并且响应中的数据可以根据其内容类型进行分析(或者如果指定忽略内容类型以支持,则为
dataType
),jQuery将其视为成功。如果脚本返回
data
,则在AJAX中将其视为成功。@Blazemonger-不,不是。如果HTTP状态代码不是错误,并且响应中的数据可以根据其内容类型进行解析(或者如果指定忽略内容类型而支持,则
dataType
),jQuery将其视为成功。感谢您澄清这一点,我相信我可能已经解决了这一问题感谢您澄清这一点,我相信我可能已经解决了这个问题。我如何允许使用jquery执行此操作,它是否在成功函数中?是的,只需在成功函数中放入if-else语句。我如何允许使用jquery执行此操作,它是否在成功函数中?是的,只需在成功函数中放入if-else语句。