У меня что-то странное происходит с моим приложением Laravel / Vue, и я не могу понять это. В Laravels web.php у меня есть простой маршрут
Route::get('api/test', 'UploadController@test');
Если я делаю route:list
, я вижу правильный маршрут
| GET|HEAD | api/test | App\Http\Controllers\UploadController@test | web,auth |
Я упростил контроллер на данный момент, поэтому он выглядит так
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class UploadController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function test()
{
dd("IN");
}
}
И запрос Axios просто
<script>
export default {
data() {
return {
files: {}
}
},
methods: {
loadFiles() {
axios.get("api/test").then(({ data }) => (this.files = data));
}
},
created() {
this.loadFiles();
Fire.$on('AfterCreate',() => {
this.loadFiles();
});
}
}
</script>
Здесь все становится странным. Проверяя консоль, я вижу, что URL-адрес запроса http://localhost:8000/api/test
, что является правильным. Я получаю ответ 200, но он не показывает мой вывод, только весь HTML-код страницы.
Если я изменю запрос на POST, я увижу вывод этой функции.
Я что-то здесь упускаю? Почему бы POST работать, но НЕ ПОЛУЧИТЬ?
Спасибо
Update
Удалось заставить это работать, но не уверен почему. У меня есть другая страница, которая отображает пользователей, и запрос GET для этого работал нормально. Затем я захотел проверить файл маршрута api.php, чтобы убедиться, что ничто здесь не останавливает тест. Я заметил, что у меня все еще был мой пользователь, поэтому я удалил его, а затем мой пользователь перестал работать.
Итак, в api.php я добавил
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::middleware('auth:api')->get('/upload', function (Request $request) {
return $request->user();
});
А теперь оба работают. Почему это?
Спасибо