ajax请求php后台,数据成功上传到了数据库,但是前端一直执行error回调函数,一直找不到原因
下面是代码,大佬们给看看
ajax
$.ajax({
url:"add2.php",//传递地址
data:{
"datas":JSON.stringify(result)
}, //传递参数
type:'post', //传递方式
dataType:'json', //后台返回格式
success:function(data){
console.log(data.status+'---'+JSON.stringify(data.sql));
},
error: function(error){
console.log(error.responseText);
}
});
PHP
<?php
header("Access-Control-Allow-Origin: *");
header("Content-type:text/html;charset=utf-8");
$url = "mysql: host=localhostss;dbname=fangde20220318";
$user = "root";
$pwd = "root";
$conn=new PDO($url,$user,$pwd);
$conn->query("set names utf8");
$datas = trim($_POST['datas']);
$data = json_decode($datas);
//分组,每组100个
$data = array_chunk($data, 100);
//循环组装成sql
$zIndex=0;
foreach ($data as $datum) {
$values = '';
$values2 = '';
foreach ($datum as $item) {
$values .= '('.$item->序号.',"'.$item->方德OS产品.'"),';
$values2 .= '('.$item->序号.',"'.$item->适配平台.'","'.$item->认证时间.'"),';
$zIndex++;
print_r($zIndex."--");
}
$values = rtrim($values, ',');
$values2 = rtrim($values2, ',');
$sql = "insert into `demo3` (`id`, `name`) values $values".";";
$sql .= "insert into `demo1` (`id`, `name`, `age`) values $values2".";";
echo $sql.PHP_EOL;
//执行
//TODO 这里写插入数据库的代码
$res=$conn->exec($sql);
if($res){
echo json_encode(array(
"status"=>true,
"num"=>$sql.PHP_EOL,
"info"=>"add success"
),JSON_UNESCAPED_UNICODE);
}else{
echo json_encode(array(
"status"=>false,
"info"=>"add error",
"sql"=>$sql,
),JSON_UNESCAPED_UNICODE);
}
}
一般两种情况:要么状态码不是 2XX;要么返回数据有问题。
ParseError 也会进到 error 回调里,你这里设置了
dataType: 'json'
,如果接口返回的不是 JSON 就会反序列化异常。这是 JSON?