Laravel 5.6 - 从 jQuery 传递到 Laravel 控制器的问题
Laravel 5.6 - Issue passing from jQuery to Laravel Controller
我在从带有 ajax 请求的 blade 文件传递到我的 Laravel 控制器时遇到了一些问题。据我所知,我已经适当地设置了我的路线。
路线
Route::post('/aquarium/{id}/parameters', 'AquariumController@paramUpdate')->name('paramUpdate');
Laravel 函数
use App\Aquarium;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
public function paramUpdate($id)
{
$params = $_POST['parameters'];
$aquarium = Aquarium::find($id);
$aquarium->parameters = $params;
$aquarium->save();
return "test";
//return redirect('/aquarium/'.$id);
}
Ajax 请求
var jsonParams = JSON.stringify(params);
$.ajax({
type: "POST",
url: "{{ route('paramUpdate', $aquarium->id) }}",
data: { parameters: jsonParams },
success: function(response) {
console.log(response);
},
error: function() {
console.log("Ajax error");
}
});
目的是将jsonParams变量传递给controller,然后保存到数据库的parameters字段中。数据库已配置且存在记录。
已修复 - 我添加了
<meta name="csrf-token" content="{{ csrf_token() }}">
到页眉,然后
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
到脚本。通过使用网络选项卡查看返回的错误,然后从那里进行一些谷歌搜索来解决这个问题。
我在从带有 ajax 请求的 blade 文件传递到我的 Laravel 控制器时遇到了一些问题。据我所知,我已经适当地设置了我的路线。
路线
Route::post('/aquarium/{id}/parameters', 'AquariumController@paramUpdate')->name('paramUpdate');
Laravel 函数
use App\Aquarium;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
public function paramUpdate($id)
{
$params = $_POST['parameters'];
$aquarium = Aquarium::find($id);
$aquarium->parameters = $params;
$aquarium->save();
return "test";
//return redirect('/aquarium/'.$id);
}
Ajax 请求
var jsonParams = JSON.stringify(params);
$.ajax({
type: "POST",
url: "{{ route('paramUpdate', $aquarium->id) }}",
data: { parameters: jsonParams },
success: function(response) {
console.log(response);
},
error: function() {
console.log("Ajax error");
}
});
目的是将jsonParams变量传递给controller,然后保存到数据库的parameters字段中。数据库已配置且存在记录。
已修复 - 我添加了
<meta name="csrf-token" content="{{ csrf_token() }}">
到页眉,然后
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
到脚本。通过使用网络选项卡查看返回的错误,然后从那里进行一些谷歌搜索来解决这个问题。