我正在开发一个 Laravel 5 RESTful API,它似乎没有正确路由 POST 请求。
这是我的routes.php:
Route::group(array('prefix' => 'api/v1'), function()
{
Route::resource('messages', 'IncomingMessages');
});
这是我的控制器:
class IncomingMessages extends Controller
{
public function index() {
return "This is index";
}
public function store() {
return "This is store";
}
public function update() {
return "This is update";
}
}
这就是发生的事情:
- Request
GET mydomain.com/api/v1/messages/
--> 这是索引
- Request
PUT mydomain.com/api/v1/messages/1
--> 这是更新
- Request
POST mydomain.com/api/v1/messages/
--> 这是索引
这是什么php artisan route:list
返回:
- GET|HEAD : api/v1/messages : api.v1.messages.index : App\Http\Controllers\IncomingMessages@index
- GET|HEAD : api/v1/messages/create : api.v1.messages.create : App\Http\Controllers\IncomingMessages@create
- POST : api/v1/messages : api.v1.messages.store : App\Http\Controllers\IncomingMessages@store
- GET|HEAD : api/v1/messages/{messages} : api.v1.messages.show : App\Http\Controllers\IncomingMessages@show
- GET|HEAD : api/v1/messages/{messages}/edit : api.v1.messages.edit : App\Http\Controllers\IncomingMessages@edit
- PUT : api/v1/messages/{messages} :api.v1.messages.update ;应用\Http\Controllers\IncomingMessages@update
- 补丁:api/v1/messages/{messages}:App\Http\Controllers\IncomingMessages@update
- 删除 : api/v1/messages/{messages} : api.v1.messages.destroy : App\Http\Controllers\IncomingMessages@destroy
所以,我的问题是:
我缺少什么?为什么它路由到index()
而不是路由到store()
?
NOTES:
- 我已禁用“VerifyCsrfToken”
Kernel.php
- 我正在尝试使用 Chromium 插件“Postman”的请求。
UPDATE:
问题是添加一个尾随/
到网址。因此,不要使用此 URL:
mydomain.com/api/v1/messages/
我尝试过这个:
mydomain.com/api/v1/messages
它起作用了
该问题是由尾随引起的/
被添加到 URL 中。因此,不要使用此 URL:
mydomain.com/api/v1/messages/
我尝试过这个:
mydomain.com/api/v1/messages
它起作用了。
我通过查看服务器日志发现了这一点。这就是我发现 POST 请求到 URL 的方式messages/
被重定向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)