首页 > 解决方案 > 在 Laravel 中使用 ajax 将 url 加载到引导模式不起作用

问题描述

在 Laravel -Controller 中,名称是ProductController,方法是showproductinmodal。我试过这个,它工作的javascript代码。

网络路线:

Route::get('admin/product/show/{id}', 'Admin\ProductController@showproductinmodal');

JS:

<script>
            $('.showinfo').click(function(){

            var productid = $(this).data('id');

            // AJAX request
            $(".modal-body").load("{{URL::to('admin/product/show/')}}"+"/"+productid);


            });            
</script>

网址已加载并将一些文本返回到模态。但是这个 Javascript 代码不起作用,我想使用下面的代码:

$(document).ready(function(){

 $('.showinfo').click(function(){

   var productid = $(this).data('id');

   // AJAX request
   $.ajax({
    url: '{{route('admin.showproductinmodal')}}',
    type: 'post',
    data: {id: productid},
    success: function(response){ 
      // Add response in Modal body
      $('.modal-body').html(response);

    }
  });
 });
});

我的网络路由代码

Route::post('admin/product/show/', 'Admin\ProductController@showproductinmodal')->name('admin.showproductinmodal');

我的控制器代码:

public function showproductinmodal(Request $id)
    {
        return "Your test id:" . $id;
    }

我的标签

<a  href="#" data-toggle="modal" data-target="#modaldemo3"  data-id="15" class="showinfo">Any ID test</a>

模态工作正常,当我使用第一个 javascript 代码时弹出一切正常数据加载,但第二个 javascript 代码对我来说是必要的。我也在 $.ajax 请求中插入了警报,但它没有用。

标签: phpjqueryhtmlajaxlaravel

解决方案


在您的情况下,您可能缺少 crsf 令牌:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

为 ajax 调用设置 csrf 令牌一次,然后调用 N 个 ajax:

$(document).ready(function () {
    $('.showinfo').click(function () {
        var productid = $(this).data('id');
        let url = "{!! route('admin.showproductinmodal') !!}"
        // AJAX request
        $.ajax({
            url: url,
            type: 'post',
            data: { 
                id: productid 
            },
            success: function (response) {
                // Add response in Modal body
                $('.modal-body').html(response);
            }
        });
    });
});

如果您将使用引导模型事件并使用带有 javascript 全局变量的基本 url,它会更好。


推荐阅读