我在PostsController中有这个ajax方法
public function ajax(Request $request)
{
//dd($request);
$this->authorize('view', Post::class);
$posts = Post::orderBy("created_at","desc")->paginate(5);
$comments = Comment::all();
return response()->json(array("posts"=> $posts, "comments"=> $comments), 200);
}
当您仅获取数据并发送数据时,它的效果很好。 因此,除了尝试通过ajax请求数据之外,我还尝试在ajax请求旁边发送一些数据。如何在控制器中访问该数据?
这是一种驻留在某些刀片内的方法:
function ajax(){
let var1 = "gg";
let var2 = "bruh";
let token = document.querySelector("meta[name='csrf-token']").getAttribute("content");
let url = '/posts';
$.ajax({
type: "POST",
url: url,
headers:
{
'X-CSRF-TOKEN': token
},
data: {
'var1': var1,
'var2': var2
},
success: function(data) {
console.log(data);
}
});
}
为了简化:如何通过PostsController中刀片的ajax函数给我dd()或dump()赋予数据(var1和var2)?
这是路线:
Route::post('/posts', "PostsController@ajax");
答案 0 :(得分:2)
dd()
是laravel函数,dump()
是php。因此您不能从javaScript中使用它们。
您不能dd() or dump()
来自直接的ajax请求或JavaScript。
您可以做的是console log your data
,或从browser developer portion, network tab
检查以查看从ajax响应中获取的数据。您可以在
对于Chrome:
Insepect > Network
对于Mozila:
Insepect Element > Network
如果您要获取控制器上的var1
和var2
,则可以通过$request->var1
和$request->var2.
来获取它们
答案 1 :(得分:-1)
Hasan05是正确的。只需要知道正确的方向。因此,为了获取ajax请求的数据参数,我修改了ajax控制器方法:
public function ajax(Request $request)
{
$var1 = $request->input('var1');
$var2 = $request->input('var2');
$this->authorize('view', Post::class);
$posts = Post::orderBy("created_at","desc")->paginate(5);
$comments = Comment::all();
return response()->json(array("posts"=> $posts, "comments"=> $comments, "var1"=> $var1, "var2"=> $var2), 200);
}