我试着去做:
Route::get('/foo', function (Request $request) {
return response()->json('Ready');
});我得到了一个答案HTML:
但邮政是可行的:
Route::post('/bar', function (Request $request) {
return response()->json('Ready');
});结果:“就绪”
有什么问题吗?谢谢。
编辑:好的。我使用Vue 3和Vue-路由器,所以我更改了文件web.php:
Route::get('/{any?}', function () {
return view('index'); })->where('any', '.*');(到SPA工作)
然后我改变了
Route::get('/', function () {
return view('index');
})现在GET请求生效了!
但是没有这些代码,Vue路由器就不能正常工作。
Route::get('/{any?}', function () { return view('index'); })->where('any', '.*');我该怎么办?谢谢。
发布于 2022-07-11 23:42:56
问题是您使用的是web.php而不是api.php路由文件。默认情况下,来自web.php的所有闭包路由都被解析到Renderable对象,该对象将输出呈现给HTML。如果确实使用api.php,则闭包路由将被解析为JsonResponse。
总之,请将api.php用于json响应和web.php或仅查看响应(也称为视图响应)。(可供渲染的)。
最后,您来自laravel路由器的vue-路由器解析器应该设置在文件的末尾。
你有
Route::get('/{any?}', function () {
return view('index'); })->where('any', '.*');
});我强烈建议:
// All of your other routes here...
Route::view("/{any?}", "index")->where("any", ".*");https://stackoverflow.com/questions/72867800
复制相似问题