我有一个AJAX脚本,应该在用户登录时将数据插入到mysql数据库中。但是它当前正在运行成功函数,即使'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();
}
这是向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'));
}
}
感谢您的任何建议!
答案 0 :(得分:5)
您没有返回错误。
您将返回包含数据200 OK
的{{1}}。
你可以在你的jQuery成功函数中处理它,或send a different status code(看起来a 403 error适合这里)。
答案 1 :(得分:0)
您必须记住异步请求发生的错误,并且PHP后端发生的错误不同。您的错误发生在PHP级别,就JavaScript的前端而言,PHP返回有效的HTML。您需要检查返回的JSON中的“success”变量是否为真。