gpt4 book ai didi

javascript - 无法在 Controller Laravel 5.1 中检索通过 ajax 发送的数据

转载 作者:行者123 更新时间:2023-11-30 12:16:25 26 4
gpt4 key购买 nike

我通过 ajax 将数据发送到我的 Controller

$.ajax({
url: 'test',
type: 'POST',
data: { id: sessionStorage.getItem('user_id') },
dataType: 'json',
contentType: "application/json; charset=utf-8"/*,
success:function(id){
alert(sessionStorage.getItem('user_id'));
}*/
});

在我使用的 Controller 中

public function getUserMessages(){

$id = Input::get('id');
$messages = Message::where('message_by' , Auth::user()->id)->where('message_for',$id)->get();
echo "id is ",$id;
return $messages;
}

我在 $id 中什么也得不到。我也试过 $_POST['id']undefined index id。如何检索 id 值?$request->has('id') 也返回 false。

最佳答案

您应该使用 Request 类而不是 Input:

public function getUserMessages(\Illuminate\Http\Request $request){

$id = $request->id;
$messages = Message::where('message_by' , Auth::user()->id)->where('message_for',$id)->get();

return $messages;
}

您的 ajax 调用不起作用,并且会抛出 500 服务器错误,因为每当您发布内容时,您都需要传递 laravel 的 csrf token 。在 Blade View 的顶部创建一个元标记,例如:

<meta name="_token_" content="{{ csrf_token() }}">

并在执行 ajax 调用时获取值:

$.ajax({
url: '/test',
type: 'POST',
data: {
id: sessionStorage.getItem('user_id'),
_token:document.getElementsByName('_token_')[0].getAttribute('content')
},
success:function(id){
alert(id);
}
});

很可能您的 ajax 调用中的成功函数只会提醒 [object Object],为了更好地了解返回的内容,请使用

console.log(id);

相反。

您还可以为 ajax 调用创建一个错误函数,以便显示可能的错误。只需添加

error: function(err){
console.log(err);
}

成功函数之后。

关于javascript - 无法在 Controller Laravel 5.1 中检索通过 ajax 发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32318866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com