繁体   English   中英

如何在 OctoberCMS 上通过 AJAX 调用

[英]How to pass a AJAX call on OctoberCMS

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

所以我在我的路线中创建了一条新路线。php

<?php
Route::get('saveHighscore', 'test\Profile\Controllers\HighScore@saveHighscore')
->middleware('web');

还有一个 controller

<?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
    });

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

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

它应该可以正常工作。

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

在您指定ajax config中 -> type: "POST" ,您正在侦听get请求

可能您只需要更改Route::get -> Route::post

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM