ajax 请求PHP返回json格式的处理
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就是“路遥”了,希望你能懂