【发布时间】:2022-01-07 12:33:30
【问题描述】:
我正在尝试通过这个 ajax 请求从数据库中获取数据:
axios.get('/about-info')
web.php:
Route::get('/about-info', [CMSController::class, 'aboutInfo']);
CMSController.php:
public function aboutInfo()
{
$data = DB::table('about_info')->first('order by id desc');
return $data;
}
但是我得到了整个welcome.blade.php 内容。看起来web.php 中的url 没有被调用,而是发生了重定向。开发工具网络选项卡显示 302 重定向。
This thread 似乎对这个问题有见解。我一直在尝试实现答案 3(将 accept: 'application/json 添加到请求的 config/headers 对象中)但该对象已经具有该条目:
config:
headers:
Accept: "application/json, text/plain, */*"
This guide 说auth middleware 可能是导致此问题的原因,但我没有使用middleware(至少我不知道)。知道如何找到它的根源吗?
【问题讨论】:
-
查询应该像
DB::table('about_info')->orderBy('id', 'desc')->first()以遵循雄辩的约定,并且您的回复:return response()->json(['data' => $data]);,确保您的控制器顶部有use DB;,等等。我不认为你' 收到错误(应该是 500,而不是 302),并且它不应该默认使用任何身份验证中间件。如果您手动导航到http://localhost:8000/about-info(或您的应用的任何 URL),您会看到什么? -
@TimLewis 我确保这些东西都到位并编辑了
return声明,但没有任何改变。我没有收到错误,就像我在帖子中写的那样,dev tools network选项卡显示了302 redirect。当我导航到http://localhost:8000/about-info时,我收到welcome.blade.php(索引页)作为data的响应。
标签: ajax laravel vue.js http axios