您好,我想使用ajax将数据发送到我的控制器。
我的代码
AJAX
$.ajax( {
type:'POST',
header:{
'X-CSRF-TOKEN':$('meta[name="csrf-token"]').attr('content')
},
url:"{{route('race.post')}}",
data:{
_token: "{{ csrf_token() }}",
dataType: 'json',
contentType:'application/json',
}
})
.done(function() {
alert('success');
})
.fail(function() {
alert("error");
});
CONTROLLER
public function Points(Request $request){
$test = $request->input('data');
return "$test";
}
路线
Route::post('updateC', ['uses' =>'RacesController@Points', 'as' => 'race.post']);
还有我得到的错误。
答案 0 :(得分:0)
由于您使用的是JavaScript文件而不是刀片的文件,因此route()
帮助程序方法无效,并且路线'race.post'也未解析为url。
尝试将网址更改为此:
url: '/updateC'
当您想在JavaScript中使用route()
帮助程序时,必须将脚本添加到Blade文件中,并用json_encode值,您可以在this answer中阅读有关此内容的更多信息。
答案 1 :(得分:0)
我有不同的使用方式: AJAX
data = {
selectmanufacturer: selectmanufacturer,
categories: selectCategory,
_token: "{{csrf_token()}}",
productName: productName
};
$.ajax({
url: '{{URL::to('/all-products-data')}}',
type: 'POST',
dataType: 'json',
data: data,
success: function (response) {
},
error: function (response) {
alert(response);
}
});
控制器:
public function Points(Request $request){
$test = $request->all();
return "$test";
}
希望对您有帮助
答案 2 :(得分:0)
您要发布的URL在您发布的控制台输出中看起来不正确。在您的AJAX代码中,您可以这样:
url:"{{route('race.post')}}"
但这只是按原样进行解释,不是被解释为Laravel中该路线的值。
如果要解析Blade标签,则需要确保JavaScript代码在Blade模板中。
答案 3 :(得分:0)
不键入:“ POST”,方法:“ POST”请尝试修改以下代码:ref:Reference Link HTML代码
<button onClick="onBtnClick()" data-url="{{route('race.post')}}"></button>
更新的代码
function onBtnClick(){
var token = $('meta[name="csrf-token"]').attr('content');
var url = $(this).attr("data-url");
$.ajax( {
method:'POST',
header:{
'X-CSRF-TOKEN': token
},
url: url,
data:{
_token: token,
dataType: 'json',
contentType:'application/json',
}
})
.done(function() {
alert('success');
})
.fail(function() {
alert("error");
});
}
答案 4 :(得分:0)
将此内容添加到您的layout.blade文件中
<meta name="csrf-token" content="{{ csrf_token() }}">
然后在您的js代码中使用此代码
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
我希望这会有所帮助!
答案 5 :(得分:0)
我刚刚删除了url末尾的斜杠,它开始起作用...
/managers/games/id/push/
至:
$http({
method: 'POST',
url: "/managers/games/id/push",
答案 6 :(得分:0)
第一件事是我们将两条路线放在一条中,以显示视图,而另一条路线用于发布ajax。如此简单,将两个路由都添加到您的路由文件中。
routes / web.php
Route::get('ajaxRequest', 'RacesController@Points');
Route::post('ajaxRequest', 'RacesController@Points');
在您的视图中包含此元标记
<meta name="csrf-token" content="{{ csrf_token() }}" />
在ajax调用中包含javascript代码
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答案 7 :(得分:0)
检查您的 Laravel 路由是否为此请求正确设置。
就我而言,我有一个 $.ajax url: "crop-image-upload"
和一个 Route::post('crop-image-upload ', 'CropImageController@uploadCropImage');
但请求已发送至 http://127.0.0.1:8000/news/crop-image-upload
所以我不得不改变我的路线到Route::post('/news/crop-image-upload ', 'CropImageController@uploadCropImage');
因此,在您的情况下,尝试在 ajax 上添加一个文字 url,如下所示:
url:"/races/updateC"
并在路线中添加“races/”,如下所示:
Route::post('/races/updateC', ['uses' =>'RacesController@Points', 'as' => 'race.post']);