laravel这样返回的不是json对象吗?

后台这样返回一个json

return response()->json(['aaa'=>1]);

我想在前台oDiv1里面输出这个aaa的值 为什么是undefined呢?

ajax("/test",oV1,function(json){
          oDiv1.innerHTML=json.aaa;
});

后来我这样试了也不行 请问应该怎么输出aaa的值呢oDiv1.innerHTML=JSON.parse(json.aaa);

阅读 5.5k
5 个回答

直接

return ['aaa' => 0];

Laravel返回一个数组,会直接在响应头加上 json 响应
你使用

// 加上预期服务器返回数据的格式
$.ajax({dataType:"json"});

// 建议使用
$.post 更为简洁,

如果,console.log(json)有值的话,因为你ajax没定义类型,所以返回的是字符串,得转成对象,才能像操作数组一样操作里面的值

<script type="text/javascript">
    

ajax("/test",oV1,function(json){
        json_obj =  eval('(' + json + ')'); 
        oDiv1.innerHTML=json_obj .aaa;
});

</script>

后台要用这个json_encode

echo json_encode(['aaa'=>1]);
exit;

php部分是对的,主要看你使用的js ajax 是什么,是jquery还是axios还是其他,最好的方式是在回调函数中把json这个对象console.log(json)出来,看看这个对象返回的是什么,可能有的包装了一层,比如json.data才是你的正确返回数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题