php返回代码格式
public function json(){ if (request()->isAjax()){
$data = [
'code'=>'1',
'msg'=>'成功',
'data'=>array('1'=>'1','2'=>'2'),
];
return json_encode($data,JSON_UNESCAPED_UNICODE);
}
return view('json');
}
ajax请求
//监听提交
form.on('submit(upd)',function(data) {
//console.log(data);
//发异步,把数据提交给php
$.ajax({
url:"{:url('json')}",
type:"post",
data:{},
jsonType:"json",
success:function(a){
// var movie =eval("(" +a +")");
eval("var movie = " +a);
console.log(movie);
},
error:function(e){
layer.alert("系统错误,请刷新页面后重新修改", {
icon: 7
},
function() {
//关闭当前窗口
layer.close(layer.index);
//刷新页面
window.parent.location.reload();
});
}
})
return false;
});
打印结果
主要是eval()这个函数是关键
{name:'平凡的世界',author:'路遥'} 这是你服务器端返回的json字符串数据,那么你客户端你要怎么用呢,eval就是把一个字符串执行下,让普通的字符串变成一个对象(好像说得不是很贴切),就是普通字符执行后,里面的东西会变成可以直接使用的代码:如日期对象,数组。。。
eval("var movie = " +result); 这句意思就是把字符串变成可以直接使用的对象
执行后就相当于
var movie={name:'平凡的世界',author:'路遥'};把json对免赋值给movie变量
那么就可以直接引用了movie.name就是“平凡的世界”了movie.author就是“路遥”了,希望你能懂