Php 即使返回错误,ajax也始终运行成功
我有一个AJAX脚本,当用户登录时,它应该将数据插入mysql数据库。但是,它当前正在运行success函数,即使控制台中返回“success”=>“false” 她是我的密码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
$(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语句。