Laravel 5.8的POST请求总是抛出欢迎页面。
Laravel 5.8的POST请求总是抛出欢迎页面。
我正在尝试使用Postman测试我的API,但是当我发送POST请求时,它总是将我重定向到欢迎页面。我已经在其中设置了XSRF令牌,但仍然不起作用。\n这是我的api.php路由:\n
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Route::resource('products/{product}/feedbacks', 'FeedbackController');
\n这是我的FeedbackController中的store方法:\n
/** * Store a newly created resource in storage. * * @param \App\Http\Requests\StoreFeedback $request * @return \Illuminate\Http\Response */ public function store(Product $product, StoreFeedback $request) { $product->addFeedback( $request->validated() ); return response()->json([ "status" => "success", "message" => "Your feedback has been submitted." ], 200); }
\n这是我的web.php文件:\n
Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::resource('product-categories', 'ProductCategoryController')->parameters([ 'product_category' => 'productCategory' ]); Route::resource('product-sub-categories', 'ProductSubCategoryController')->parameters([ 'product_sub_category' => 'productCategory' ]);
\n这是我Postman请求的屏幕截图:[链接到截图](https://i.stack.imgur.com/Hu4GW.jpg)
问题的原因是在于App\Http\Requests\StoreFeedback
类中。原因是通过表单验证器将请求无效,导致请求被传回到默认的/
URL。
下面是层次结构:
但是,如果想要获取错误信息,可以将头部Accept:application/json
传递给请求头部,就可以获取错误信息。
原因是在这里处理了ValidationException。
我刚刚要发布这个问题!在文档中可以看到如果验证失败,将生成重定向响应,将用户发送回其先前的位置。
laravel.com/docs/5.7/validation
自从去年以来,我一直在探索Laravel代码。这让我茅塞顿开。:D
谢谢你的回答。我错过了验证的一个重要部分。