Laravel 中 AJAX 列表请求的状态 404 错误
Status 404 error on AJAX list request in Laravel
web.php
Route::group(['middleware' =>
['auth']], function () {
Route::get(
'/ajax-users/{$id}',
'DashboardController@indexUsersAjax'
)->name('ajax.users.index')
->middleware(['permission:Access Client Details Edit']);
控制器
/**
* Display a listing of the resource Ajax.
*
* @param $id
* @return json
*/
public function indexUsersAjax($id)
{
$users = User::all();
$defaultUser = Clients::find($id)
->default_user;
return response()->json($users, $defaultUser);
}
AJAX
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "{{ route('ajax.users.index',[1]) }}",
type: 'GET',
dataType: 'json',
success: function(result){
console.log(result);
},
error: function (data) {
console.log('Error:', data);
}});
开发者工具的结果
GET http://localhost:8123/ajax-users/1 404 (Not Found)
Error: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
我已经添加了我正在处理的 Laravel 代码,找不到哪里做错了的问题。
Laravel 路由中的参数不包含美元符号。
将 '/ajax-users/{$id}'
替换为 '/ajax-users/{id}'
,它应该可以工作。
另外,response()->json()
的第二个参数是HTTP状态。如果你想 return 这两个变量,你必须将它们放入一个数组中,例如:
return response()->json([$users, $defaultUser]);
从路由定义中的 $id 中删除 $
:
Route::get(
'/ajax-users/{id}',
'DashboardController@indexUsersAjax'
)->name('ajax.users.index')
->middleware(['permission:Access Client Details Edit']);
如果文件存在则删除 bootstrap/cache/routes.php
执行:php artisan route:list | grep /ajax-users/{id}
并检查它是否存在
web.php
Route::group(['middleware' =>
['auth']], function () {
Route::get(
'/ajax-users/{$id}',
'DashboardController@indexUsersAjax'
)->name('ajax.users.index')
->middleware(['permission:Access Client Details Edit']);
控制器
/**
* Display a listing of the resource Ajax.
*
* @param $id
* @return json
*/
public function indexUsersAjax($id)
{
$users = User::all();
$defaultUser = Clients::find($id)
->default_user;
return response()->json($users, $defaultUser);
}
AJAX
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "{{ route('ajax.users.index',[1]) }}",
type: 'GET',
dataType: 'json',
success: function(result){
console.log(result);
},
error: function (data) {
console.log('Error:', data);
}});
开发者工具的结果
GET http://localhost:8123/ajax-users/1 404 (Not Found)
Error: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
我已经添加了我正在处理的 Laravel 代码,找不到哪里做错了的问题。
Laravel 路由中的参数不包含美元符号。
将 '/ajax-users/{$id}'
替换为 '/ajax-users/{id}'
,它应该可以工作。
另外,response()->json()
的第二个参数是HTTP状态。如果你想 return 这两个变量,你必须将它们放入一个数组中,例如:
return response()->json([$users, $defaultUser]);
从路由定义中的 $id 中删除 $
:
Route::get(
'/ajax-users/{id}',
'DashboardController@indexUsersAjax'
)->name('ajax.users.index')
->middleware(['permission:Access Client Details Edit']);
如果文件存在则删除 bootstrap/cache/routes.php
执行:php artisan route:list | grep /ajax-users/{id}
并检查它是否存在