如何修复 Laravel AJAX 请求不起作用

Posted

技术标签:

【中文标题】如何修复 Laravel AJAX 请求不起作用【英文标题】:How to fix Laravel AJAX request not working 【发布时间】:2021-03-23 12:02:55 【问题描述】:

我正在尝试将来自多个比率按钮的数据存储到数据库中。 AJAX 发布请求如下:

$.ajax(  
                url: ' route("checklist.store") ',  
                method:'POST',  
                data:
                    _token: CSRF_TOKEN,
                    data1 : value1,
                    data2 : value2
                    ,  
                success:function(data)  
                    console.log('success');
                  
            );

控制台中的消息打印在控制台上,但项目未在数据库中创建。

在控制器中存储方法:

    $hacInspectionsChecklistTable = HacInspectionsChecklistTable::create($request->all());

    

【问题讨论】:

欢迎来到 SO。请提供有关控制器的更多信息。 @porloscerrosΨ 我在后端有存储方法,只是使用 AJAX 调用向它发送数据 我正在为此使用数据表 你的模型的 $fillable 属性中有 data1 和 data2 吗? 是的,我的模型中确实有 $fillable 如果我使用普通表单发布方法但不使用 AJAX,则会创建条目 【参考方案1】:

首先检查您的模型:

protected $fillable = [
 'data1', 'data2'
];

如果一切正常,您可以尝试类似的方法

Ajax 代码:

$.ajax(  
   url: ' route("route.store") ',  
   method:'POST',  
   data:
         _token: CSRF_TOKEN,
         data1 : value1,
         data2 : value2
        ,  
        success:function(data)  
          if(data=="created")
            console.log('success');
          
          
);

路线

Route::post('/youroute', [YourController::class, 'store'])->name('route.store');

控制器

public function store(Request $request)
    $data = new Model();
    $data->data1 = $request->data1;
    $data->data2 = $request->data2;
    $data->save();

    return response()->json('created');

【讨论】:

以上是关于如何修复 Laravel AJAX 请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CSRF 令牌在带有 Ajax 请求的 Laravel 5.1 异常处理程序中不起作用

Laravel ajax url 在生产服务器上不起作用

AJAX 请求中不允许使用 Laravel 405 方法

Ajax 检索错误不起作用 Laravel

当我更改路线时,Laravel ajax 搜索不起作用

在 Laravel 8 的 js 文件中分离 Javascript Ajax 代码不起作用