【问题标题】:How to pass a AJAX call on OctoberCMS如何在 OctoberCMS 上传递 AJAX 调用
【发布时间】:2020-08-20 11:31:44
【问题描述】:

我正在使用用户插件 OctoberCMS,我想通过 AJAX 将数据发送到控制器并将数据保存在数据库中(在登录用户的列中)。

所以我在我的 routes.php

中创建了一个新路由
<?php
Route::get('saveHighscore', 'test\Profile\Controllers\HighScore@saveHighscore')
->middleware('web');

还有一个控制器

<?php
namespace Test\Profile\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use October\Rain\Auth\Models\User;
use RainLab\User\Facades\Auth;

class HighScore extends \Illuminate\Routing\Controller
{
function saveHighscore(Request $request) {
    DB::table('users')->where(['id' => Auth::getUser()->id])->update(['highscore' => $request]);
}
}

还有我的 jQuery 调用

$.ajax({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        url: "/saveHighscore",
        type: "POST",
        data: highscore
    });

但是没有任何效果。如果我在浏览器中使用控制器中的虚拟数据调用 /saveHighscore,它可以正常工作

【问题讨论】:

标签: php jquery ajax octobercms


【解决方案1】:

它应该可以正常工作。

但我认为您提出了 2 个不同的请求

ajax config 你指定了 -> type: "POST" 并且你正在监听 get 请求

可能你只需要更改Route::get -&gt; Route::post

现在应该可以正常工作了。

如有任何疑问,请发表评论。

【讨论】:

    【解决方案2】:

    AJAX 框架仅适用于 CMS 控制器或后端控制器(扩展后端/类/控制器的控制器)。如果您想在不使用内置 AJAX 框架的情况下通过 AJAX 发送数据,那么我们必须从浏览器开发工具的控制台/网络选项卡中查看更多信息,以了解它失败的确切原因。

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2019-06-23
      • 2018-01-30
      • 1970-01-01
      • 2015-10-26
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多