我正在尝试使用Postman在我的API中发布一个Json,但是我收到了一个错误:
由于不活动,该页面已过期。
所以,在Postman我正在访问http://localhost:8000/api/jobs/。在我的Headers选项卡中,我使用Content-type作为键,将application / json作为值并插入以下JSON:
{"title": "PHP Developer / Laravel Expert","description": "Laravel Expert", "local": "São Paulo", "remote": "no", "company_id": "3"}
我正在使用laravel。 这是我的web.php路由文件:
Route::group(array('prefix' => 'api'), function() {
Route::get('/', function () {
return response()->json(['message' => 'Jobs API', 'status' => 'Connected']);
});
Route::resource('jobs', 'JobsController');
Route::resource('companies', 'CompaniesController');
});
这是我在CompaniesController上的商店方法:
public function store(Request $request)
{
$job = new Job();
$job->fill($request->all());
$job->save();
return response()->json($job, 201);
}
答案 0 :(得分:2)
我认为你正在使用 laravel版本> 5.3 而不是在web.php中编写API路由,而不是在Route文件夹中的api.php中编写api路由。
api.php文件包含RouteServiceProvider放置在api中间件组中的路由,后者提供速率限制。这些路由是无状态的,因此通过这些路由进入应用程序的请求旨在通过令牌进行身份验证,并且无法访问会话状态。
答案 1 :(得分:2)
如果您有laravel 5.5并且想要从路由中删除该csrf保护,那么您可以将其添加到App \ Http \ Middleware \ VerifyCsrfToken中的$except = [];
。
但是,您可能希望将其他形式的身份验证放在适当的位置。
答案 2 :(得分:0)
您必须在路由中包括中间件
'middleware' => 'api'