【问题标题】:Laravel api routes doesn't works - 404Laravel api 路由不起作用 - 404
【发布时间】:2019-12-15 10:51:25
【问题描述】:

我尝试使用 API 路由,但我的路由不起作用。

当我尝试使用 http://xxxxxxx/api/v1/auth/login 登录时

服务器向我发送 404 错误。你有什么想法吗?

// Auth Endpoints
Route::group([
'middleware' => 'cors',
'prefix' => 'v1/auth'
], function ($router) {
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LogoutController@logout');
Route::post('register', 'Auth\RegisterController@register');
Route::post('forgot-password', 'Auth\ForgotPasswordController@email');
Route::post('password-reset', 'Auth\ResetPasswordController@reset');
});

// Resource Endpoints
Route::group([
'middleware' => 'cors',
'prefix' => 'v1'
], function ($router) {
Route::apiResource('todo', 'TodoController');
});

// 未找到 Route::fallback(function(){ return response()->json(['message' => 'Resource not found.'], 404); });```

【问题讨论】:

    标签: laravel routes http-status-code-404


    【解决方案1】:

    因为您没有发送 POST 数据。如果你发送一个 Url,你只发送一个 GET。如果要发送 POST 动词,可以使用 Postman 之类的软件同时发送 URL http://xxxxxxx/api/v1/auth/login + POST 数据。

    Route::post('login', 'Auth\LoginController@login');

    【讨论】:

    • 当然可以,但是当我点击我的 react 组件的登录按钮时会触发此错误。我发送一个帖子请求。
    • _ 你的应用正在路由 Route fallback -> 404 _ 检查控制器 Auth\LoginController 是否正常 _ 检查 Auth\LoginController 中的方法登录是否正常 _ 检查 Middleware \Illuminate\Session\Middleware\AuthenticateSession ::class 在 app\HTTP\Kernel.php 中运行良好 _ 也许是中间件中的一些代码不允许您进行路由。这是因为在路由之后。 _
    • 我尝试在API中添加一个get测试路由,结果是一样的:404
    • 你的路由缓存了吗?试试php artisan route:clear
    【解决方案2】:

    我假设这是在routes/api.php 文件中。如果你在 web 路由文件中声明了所有这些,那么就不会有任何 api 前缀。

    通过在控制台中运行 php artisan r:l 来检查您的路线是否确实存在。

    【讨论】:

    • 这些是api文件中的api路由,它们存在于php artisan r:l中
    • 您是否对某些路由使用身份验证? IIRC api auth 默认需要 60 个字符的字符串作为令牌传递。
    猜你喜欢
    • 2019-04-02
    • 2021-04-12
    • 1970-01-01
    • 2019-04-21
    • 2020-07-04
    • 2017-08-09
    • 1970-01-01
    • 2020-01-24
    • 2016-11-05
    相关资源
    最近更新 更多