【发布时间】:2021-04-10 22:31:27
【问题描述】:
我正在使用 Laravel 和 Vue 开发一个简单的网站,代码在 Homestead 中运行。当用户访问网站的主页时,视频以网格形式显示。因此调用 API 来获取数据,我得到的返回是 .view 文件的 HTML 而不是 JSON。
// API Routes in Api.php
Route::get('/videos', [VideoController::class, 'getVideos']);
Route::get('/videos/{id}', [VideoController::class, 'getVideo']);
Route::post('/user/login', [AuthController::class, 'login']);
Route::post('/user/check', [UserController::class, 'checkUser']);
// Controller function that returns data from website via ORM
public function getVideos(): JsonResponse{
return resonse()->json([
"response" => Video::all()
]);
}
【问题讨论】:
-
可能是另一个控制器被击中,检查你的 api 调用,里面有一个 dd()
-
还可以使用 php artisan route:list 显示您的路线
-
你的
api中间件组里面有什么? -
我试过 dd(),但它仍然返回 HTML
-
我曾经有类似的东西是需要进行身份验证的 api,当我不是时,它会尝试重定向我。但由于它是一个 json 响应,它会尝试在 json 响应中呈现登录页面。