Laravel api路线与邮递员不工作

Posted

技术标签:

【中文标题】Laravel api路线与邮递员不工作【英文标题】:Laravel api route with postman not working 【发布时间】:2017-07-02 12:52:39 【问题描述】:

我在 Windows 上使用 xampp 在 Laravel 5.3 上开始了一个新项目,我安装了 cors 包(https://github.com/barryvdh/laravel-cors) 以便将来在其他域中进行请求。

但是在本地主机上使用邮递员路由不起作用我在/routes/api.php上有这个:

Route::get('/hello', 'AppController@hello');

在控制器上:

public function hello()
    
        return "hello!";
    

关于邮递员:

http://localhost/myproject/api/hello

响应“找不到对象错误 404”,我尝试使用 http://localhost:80/myproject/api/hello 和相同的响应。

当我输入http://localhost/myproject/public/api/hello 时,我得到响应:“RouteCollection.php 第 161 行中的 NotFoundHttpException:”

所以我不明白,这是 laravel 5.3 的错误还是什么?这是我的 php artisan 路由列表:

+--------+----------+------------------------+----------+------------------------------------------------------------------------+--------------+
| Domain | Method   | URI                    | Name     | Action                                                                 | Middleware   |
+--------+----------+------------------------+----------+------------------------------------------------------------------------+--------------+
|        | GET|HEAD | /                      |          | Closure                                                                | web          |
|        | GET|HEAD | api/hello              |          | App\Http\Controllers\AppController@hello                               | api          |
|        | GET|HEAD | api/user               |          | Closure                                                                | api,auth:api |
|        | GET|HEAD | home                   |          | App\Http\Controllers\HomeController@index                              | web,auth     |
|        | GET|HEAD | login                  | login    | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest    |
|        | POST     | login                  |          | App\Http\Controllers\Auth\LoginController@login                        | web,guest    |
|        | POST     | logout                 | logout   | App\Http\Controllers\Auth\LoginController@logout                       | web          |
|        | POST     | password/email         |          | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest    |
|        | GET|HEAD | password/reset         |          | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest    |
|        | POST     | password/reset         |          | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest    |
|        | GET|HEAD | password/reset/token |          | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest    |
|        | GET|HEAD | register               | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest    |
|        | POST     | register               |          | App\Http\Controllers\Auth\RegisterController@register                  | web,guest    |

【问题讨论】:

您的代码是正确的。您似乎缺少该 CORS 包的一些配置。如果没有那个包,这肯定会工作:localhost/myproject/public/api/hello @ParthVora 你说得对,我发现 Laravel 5.3 中的这个包缺少 'api' => [ 'throttle:60,1', 'bindings', \Barryvdh\Cors\HandleCors::class , ] 在 Kernel.php 文件中 您已经解决了这个问题吗?将 cors 中间件应用于您的路由,您应该没问题。否则,请检查您的路线是否确实以api 为前缀我的意思是您确定它是api/some/link 而不是some/link @OmisakinOluwatobi 实际上现在的请求正在处理我的最后一条评论,电话路线是:localhost/myproject/public/api/hello 【参考方案1】:

我认为您收到此错误是由于缺少 url 段:/public URL 应该是:/public/api/hello

【讨论】:

【参考方案2】:

在 url 部分中删除 myproject 部分。

【讨论】:

以上是关于Laravel api路线与邮递员不工作的主要内容,如果未能解决你的问题,请参考以下文章

使用邮递员将文件发送到 Laravel API

Laravel 的参数获取

Laravel - 当 API 路由错误或找不到时如何显示 JSON?

如何在 laravel 中创建 api 忘记密码和更改密码? [复制]

Laravel/000webhost/邮递员。无法得到任何回应

如何使用中间件来授权我的 laravel Restful API