我有一个看起来像这样的AJAX调用:
function getPosts(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.post("get-posts",
function(data, status){
console.log(data);
console.log(status);
});
}
在我的 routes / web.php 中,我有:
Route::post('get-posts','PagesController@getPosts');
controller_function看起来像这样:
public function getPosts(){
$posts = DB::table('users_queries')->get();
echo json_encode($posts);
}
但问题是控制台记录一个空字符串。为了确保我正在转换一个php对象,我也调用了gettype($posts);
函数并返回了对象。然后我认为问题可能在<script>
标记中并尝试了此typeof(data)
并且返回了字符串,这确保了数据是字符串。但当我跑console.log(data.length);
时,我感到震惊,因为它记录了0.但是我能够做到这样的事情:
public function getPosts(){
$posts = DB::table('users_queries')->where('id', 1)->first();
echo $posts->author;
}
一切都很甜蜜,但我无法得到整个json。那我的代码有什么问题呢?我无法弄清楚。请帮忙。
答案 0 :(得分:0)
以JSON:https://laravel.com/docs/5.6/responses#json-responses
的身份返回您的回复public function getPosts(){
$posts = DB::table('users_queries')->get();
return response()->json([
'status' => 'success',
'data' => $posts
]);
}