ajax - 在 laravel 中使用 ajax 将数据发送到 Controller

标签 ajax laravel

我正在尝试向 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/

相关文章:

php - 根据laravel中关系表中的数据显示分页

php - laravel 5.4 在请求验证之前修改数据

jquery - ASP.Net MVC Recaptcha Jquery Ajax 问题

javascript - 如何在带有 Moovweb SDK 的 Javascript 中移动 AJAX 内容?

laravel - 更新到 2.29 后启动 Laravel Homestead 时出错

laravel - 有什么方法可以在 laravel backpack-crud 中获得模型的特定版本?

php - file_put_content ...无法打开流 :Permission denied in Laravel 5

ajax - 如何添加 f :ajax tag to an h:link?

jquery - 在 dataTable() 中获取 ajax 响应

jquery - 使用 .load() 检索参数