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 路由错误或找不到时如何显示 JSON?
如何在 laravel 中创建 api 忘记密码和更改密码? [复制]