在实际的使用中时常会发生一些ajax验证的诡异事件,如我在一个文件中使用json传送数据,结果出现了当数据发送到服务器端时(后端主要呈现的是对json数据对象的数据库查询操作),结果显示的是数据已经插入到数据库中,但是$.ajax();确执行了error()函数。
代码如下:
<pre>
function fabuxuan_submit(url){
var title = $("#wenzhang").find("input[name='biaoti_a']").val();
var textcc = $("#wenzhang").find("textarea[name='textcc']").val();
var uid = $("#wenzhang").find("input[name='userid']").val();
//var biaoqing_aa = $("#wenzhang").find(".input_b").val();
var ss = "title="+title+"&msg="+textcc+"&uid="+uid;
$.ajax({
url:url+"/Center/Title", //请求地址
type:"post", //发送方式
async:true, //异步
data:"title="+title+"&msg="+textcc+"&uid="+uid, //发送数据
dataType:"html",//响应数据格式
success:function(data){
if(data){
alert(12);
var pid = $("<pre class='brush: jscript;' id='tmp2'>$.Prompt('发布成功!');</pre>");
eval(pid.html());
$(".guanbi").click();
$("#wenzhang").find("input[name='reset']").click();
}else{
var pid = $("<pre class='brush: jscript;' id='tmp2'>$.Prompt('发失败!');</pre>");
eval(pid.html());
}
},
error:function(){
alert(2);
var pid = $("<pre class='brush: jscript;' id='tmp2'>$.Prompt('发布dgdfg失败!');</pre>");
eval(pid.html());
}
});
//return false;
}
</pre>
后台代码是://主要是将数据插到后台数据库中
public function Title(){
$data['title']=$_POST['title'];
$date['msg']=$_POST['msg'];
$date['uid']=$_POST['uid'];
$mod = D("Center");
if(!$mod->create()){
echo "dd";
}else{
echo true;
}
if($add=$mod->add()){
$c=M("content_status");
$data['text_id']=$add;
$data['status']=1;
$c->add($data);
//
$a=M("content_type");
$data['text_id']=$add;
$data['type']='first';
$a->add($data);
$mod=M("Picture");
foreach($_SESSION['article_img'] as $im){
if(preg_match("/{$im['picname']}/",$date['msg'])){
$mod->where("id=".$im['id'])->save(array("tid"=>$date['uid']));
}else{
$mod->delete($im['id']);
unlink('./Public/Uploads/'.$im['picname']);
}
}
$_SESSION['article_img']=array();
echo true;
}else{
echo false;
}
}
现象:虽然直接查询数据库时,显示数据已经插入数据库中但是前台依然显示的是插入失败,执行的是error函数的内容。