我是API和Vue的新手。 我正在使用Laravel 5.8 api.php以及控制器和视图,并且只返回404 Not Found。
这是香港专业教育学院尝试过的
api.php
Route::group(['middleware' => 'api'], function(){
Route::resource('/dashboard/departments', 'DepartmentsController');
});
控制器
class DepartmentsController extends Controller
{
public function index()
{
return 'hey';
}
}
路线列表
GET|HEAD | api/dashboard/departments | departments.index | App\Http\Controllers\DepartmentsController@index | api,auth
我尝试通过/127.0.0.1:8000/api/dashboard/departments
和/127.0.0.1:8000/dashboard/departments
访问它,但两者均无法正常工作。
答案 0 :(得分:1)
只需在api之前的网址中添加public。
像
{{1}}
答案 1 :(得分:0)
您的API路由位于api
中间件中,该中间件要求对API类型进行身份验证。如果您查看API Authentication文档,则需要设置API令牌并随请求传递。
您要么需要随请求一起传递令牌,要么删除api
中间件并未经身份验证的API路由,或者将需要通过浏览器访问的路由移出api
中间件和web
中间件和路由文件中。
答案 2 :(得分:0)
对于仍然想知道的人,或者仅仅是我。 这是我经过多次试验后所做的。
我从我的API.php中删除了route :: group,并从RouteServiceProvider.php中删除了前缀('api'),然后将其替换为中间件('web')
这是我的 RouteServiceProvider.php 文件
protected function mapApiRoutes()
{
Route::middleware('api')
->middleware('web')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
这是我的 api.php 文件
Route::resource('/dashboard/departments', 'DepartmentsController');
答案 3 :(得分:0)
请记住,在api.php
中声明的路由将自动连接到/api
前缀btw:
Route::get('/hello', ...)
axios.get('/api/hello')