我正在尝试向 Controller 发送一个简单的 POST 请求数据,但使用的是 ajax。没什么特别的,我只是想在不重定向/刷新页面的情况下将数据发送到我的 Controller 。
编辑:将所有代码更新为当前的样子
在标题中
<meta name="csrf-token" content="{{ csrf_token() }}" />
<script>var host="{{url()}}"</script>
路线
post('/messages/unread', '\CommendMe\Http\Controllers\MessageController@getReadRequest');
标记
<div class="accordion messageAccordion getRequestReadMessage" data-value="{{$message->id}}">
脚本
$('.getRequestReadMessage').click(function() {
$readValue = $(this).attr('data-value');
$token = $('meta[name=csrf-token]').attr("content");
$.ajax({
type: "POST",
url: host + '/messages/unread',
data: {readValue: $readValue, _token:$token},
});
});
Controller
public function getReadRequest(Request $request)
{
dd(Input::get("readValue"));
}
最佳答案
Ajax 部分本身看起来还不错。
确保你有 host
在代码的某处定义。例如:
<head><script>var host="{{url()}}"</script>
但是,如果您正在收听 click
在 <a href
上,最好防止事件冒泡。像这样:
$('.getRequestReadMessage').click(function(e) {
e.preventDefault();
Laravel Controller 的方法有很多种。 例如:
dd(Input::get("readValue"));
dd(Request::get("readValue"));
dd($request->input("readValue");
两者都行
路由也很可能关闭,路径需要“未读”才能工作。
post('/messages/unread', '\CommendMe\Http\Controllers\MessageController@getReadRequest');
关于ajax - 在 laravel 中使用 ajax 将数据发送到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539701/