Все работало нормально, прежде чем я попытался использовать аутентификацию Laravel API. И теперь некоторые методы GET предоставляют MethodNotAllowedHttpException и говорят, что разрешенные методы - это POST, HEAD, а для методов публикации он говорит, что разрешенные методы - это GET, Head.
Вот мой запрос axios в моем компоненте Vue
axios.post('api/save_post?api_token='+api_token, this.post)
.then(response => {
console.log(this.user);
this.success = response.data.message;
this.post.title=" ";
this.post.content=" ";
})
.catch(err=>{
this.error = err
//this.error = 'Error in saving post, please try again'
});
вот мой маршрут в routes / api.php
Route::middleware('auth:api')->post('save_post','Api\KnowledgeHubController@index')->name('savePost');
Включил это в мой файл welcome.blade.php
meta name="csrf-token" content="{{ csrf_token() }}">
перед мета есть ‹, так что это не ошибка.
и функция контроллера
public function index(Request $request)
{
$response = KnowledgeHub::create([
"title" => $request['title'],
"content" => $request['content'],
"author_id" => $request['author_id'],
]);
if($response)
{
return response()->json(['message'=>'Post published Successfully','response'=>$response],200);
}
return response()->json(['message'=>'Error in publishing post','response'=>$response],400);
}
некоторые из решений, которые я пробовал
1-включенный токен csrf в заголовке означает в моем основном файле (welcome.blade.php)
2-попробуйте передать api_token разными способами в axios.post
3-запускаемый маршрут php artisan: кеш
Вот результат php artisan route: list
POST | api/save_post | savePost | App\Http\Controllers\Api\KnowledgeHubController@index | api,auth:api