如何在 OctoberCMS 上传递 AJAX 调用
How to pass a AJAX call on OctoberCMS
我正在使用 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,它工作正常
AJAX 框架仅适用于 CMS 控制器或后端控制器(扩展 backend/classes/controller 的控制器)。如果你想通过 AJAX 发送数据而不使用内置的 AJAX 框架,那么我们将不得不从你的浏览器开发工具的控制台/网络选项卡中查看更多信息,以了解它的确切原因失败。
它应该可以正常工作。
但我认为您提出了 2 个不同的请求
In ajax config
you specified -> type: "POST"
and you are listening for get
request
可能您只需要更改 Route::get -> Route::post
现在应该可以正常工作了。
如有疑问请评论。
我正在使用 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,它工作正常
AJAX 框架仅适用于 CMS 控制器或后端控制器(扩展 backend/classes/controller 的控制器)。如果你想通过 AJAX 发送数据而不使用内置的 AJAX 框架,那么我们将不得不从你的浏览器开发工具的控制台/网络选项卡中查看更多信息,以了解它的确切原因失败。
它应该可以正常工作。
但我认为您提出了 2 个不同的请求
In
ajax config
you specified ->type: "POST"
and you are listening forget
request
可能您只需要更改 Route::get -> Route::post
现在应该可以正常工作了。
如有疑问请评论。