エラー内容
レスポンス:
AxiosError {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST',
考えられる原因:
- ルーティングを間違えている
- 通信先のURLが間違えている
404になる原因
Routeの設定を行っているのにレスポンスがになってしまう。
解決方法はエラーの文言通り、ページが存在していない事が原因です。
エラーになるコード
routes/api.php
Route::get(
'/test',
[Test::class, 'test_function']
);
resources/js/components/EnduserSearchstore.vue
import axios from 'axios';
export default {
data() {
return {
users: {},
}
},
methods: {
getBigCategory() {
axios.get('/api_search_storeCategory')
.then((response) => {
// this.users = response.data.users
response(console.log(response))
})
}
},
created() {
this.getBigCategory()
}
}
正常動作するコード
routes/api.php
Route::get(
'/test',
[Test::class, 'test_function']
);
resources/js/components/EnduserSearchstore.vue
import axios from 'axios';
export default {
data() {
return {
users: {},
}
},
methods: {
getBigCategory() {
axios.get('/api/test')
.then((response) => {
// this.users = response.data.users
response(console.log(response))
})
}
},
created() {
this.getBigCategory()
}
}
修正内容
axiosでURLを指定している箇所を「axios.get('/api/test')」と指定してあげる。
Laravelでは、route/api.phpで指定したルーティングではデフォルトで接頭辞に「/api」が付くことになっているっぽいです。
そのため、エラーになるコードではVue側で呼び出しているURLは存在しない遷移先となっています。
LaravelのAPIのルーティングはデフォルトが付くのを忘れないようにしましょう〜。