【问题标题】:Laravel ajax form data not posting to controllerLaravel ajax 表单数据未发布到控制器
【发布时间】:2019-08-09 16:46:07
【问题描述】:

我终于让我的 AJAX 功能正常工作,它正确地将数据发布到控制器。但它仅在发送的数据包含在表单 action-/UoE/buy-product/{{product_id}} 中时才有效。但我只希望表单操作是/UoE/buy-product/,否则我实际上是在发送数据两次。一次在这里,一次在我的 ajax 函数中。

这是我的看法

<form class="buy-product-form" id="{{$product->id}}" action="{{url('/UoE/buy-product')}}" method="POST">
                                    {{csrf_field()}}
                                    <button class="pull-right btn btn-primary">BUY NOW</button>
                                </form>

这是我的 AJAX 函数

$(document).ready(function(){
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $('form.buy-product-form').on('submit', (function (e) {
                e.preventDefault();
                var product_id = $(this).closest("form").attr("id");
                $.ajax({
                    url: $(this).closest("form").attr('action'),
                    type: 'POST',
                    data: {'id': product_id},
                    dataType: 'JSON',
                    success: function () {
                        window.alert($(this).closest("form").attr('action'));
                    }
                });
            }));
        });

这是我的控制器的第一行(这里一切正常)

 public function buyProduct(Request $request){
        $product_id = $request->id;

这是我的 routes.php 文件

Route::post('/{university_code}/buy-product', 'UserController@buyProduct');

【问题讨论】:

  • 在您的路线中将 {university_code} 替换为 UoE
  • 但这就是在我使用 ajax 之前它已经工作了很长时间的方式。如果我们将来要扩展我们的网站,我需要将其保留为 {university_code}。
  • 但是换掉它还能用吗?
  • 我试过了还是不行
  • 从您的路线看来,您的控制器方法中缺少一个参数。你得到什么错误?使用浏览器开发者控制台的网络选项卡检查错误。

标签: php jquery ajax laravel


【解决方案1】:

设法修复它,我更改了路由文件并在单击按钮时将其删除。

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2015-01-31
    相关资源
    最近更新 更多