php - 不允许 axios 发布 405 | Laravel + vue.js
问题描述
我无法创建新的数据库记录,因为提交后它总是显示 POST 405(不允许)。我试图将 laravel 路由从 api.php 移动到 web.php 但它没有用。还尝试修改 axios.post 链接(创建、/创建、localhost://Reservationsystem/public/create),但它也没有给我结果。
网页.php
Route::resource('/reservation','ReservationController');
Route::get('/{any}', 'SinglePageController@index')->where('any', '.*');
路由.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from './components/HomeComponent.vue'
import Reservations from './components/ReservationsComponent.vue'
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/reservations',
name: 'reservations',
component: Reservations
}
]
})
主页组件.vue
<script>
import axios from 'axios';
export default {
data: function () {
return {
reservation: {
name: '',
surname: '',
email: '',
date: '',
place: ''
}
}
},
methods: {
addReservation: function () {
let uri = 'reservation';
axios.post(uri, this.reservation).then(res => this.reservation = [...this.reservation, res.data]);
}
}
}
</script>
控制器方法:
public function store(Request $request)
{
$reservation= new Reservation($request->all());
$reservation->save();
return new ReservationResource($reservation);
}
解决方案
您可能得到 405 的原因是因为该路线不是 Post 与 addReservation 方法中的 post 重合。我将使用以下 post 路线:
Route::post('/reservation/store','ReservationController@store');
对于 axios 中的 uri,我会使用:
let uri = 'reservation/store';
这是一篇文章的链接,展示了我如何在 Laravel 中使用 axios。 带代码的博客文章
推荐阅读
- ios - 在 Swift (iOS) 中从视频创建帧
- java - 实体类和封装混淆——如何从 main() 调用非静态方法?
- python - 如何使用 python 3.8 selenium 单击 href 按钮?
- ios - 当 iOS 使用 AppleID 登录时,如何使用浏览器捕捉 Sign in with Apple 响应?
- reactjs - React UI 没有更新,为什么?
- machine-learning - 权重和输入的点积
- php - 将数据库中的特定行加载到 html 表中
- r - R中的步进/斜坡函数
- javascript - 以对象为键的打字稿地图
- python - 在 ubuntu 上安装 python3-dev 后找不到“Python.h”