我正在尝试获取Jquery Ajax POST请求发送的laravel控制器函数中的数据,但无法获取数据并显示。 这是ajax请求
pd.DataFrame
这是控制器方法
deleteImg=function(id)
{
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
url: "/admin/gallery/deleteFile",
method: 'POST',
data:{'id':id},
dataType:'JSON',
contentType: false,
cache: false,
processData: false,
success: function (res) {
console.log(res);
}
});
}
这是路由文件
public function deleteFile(Request $req)
{
$id=$req->id;
if($id)
{
die('done');
}
die('without');
}
给出“无”作为响应。谁能告诉我我在哪里犯错。预先感谢。
答案 0 :(得分:0)
像这样编写您的ajax代码。
$.ajax
({
type: "POST",
url: "{{route('put your route here')}}",
data: {"id":id,'_token': "{{ csrf_token() }}"},
success: function(res)
{
console.log(res);
}
});
答案 1 :(得分:0)
发送数据Data: {"id" : id}
,并发送csrf令牌进行验证。
请查看以下内容:https://laravel.com/docs/5.8/csrf以获得laravel csrf令牌。
编辑:
var token = "<?php echo(csrf_token())?>";
$.ajax({
url: 'URL',
type: 'POST',
data: {id : val, _token : token},
success: function(data){
//todo
}
});
对我有用。
答案 2 :(得分:0)
我不知道为什么,但是从请求中删除contentType: false, cache: false,processData: false,
对我有用。
ajax请求现在看起来像这样:
$.ajax({
url: "/admin/gallery/deleteFile",
method: 'POST',
data:{"id":id},
dataType:'JSON',
success: function (res) {
console.log(res);
}
});
在后端控制器上,我使用$id=$req->id
来存储来自请求的ID
答案 3 :(得分:-1)
您必须以JSON格式发送数据,例如数据:{id:id}。