Laravel 此路由不支持POST方法。支持的方法:GET、HEAD。“,…
我在使用laravel resourceApi控制器和vue js时遇到问题。我正在创建和应用程序,在使用vue和laravel的地方,我发布了一个值来存储控制器的方法,但它表示该方法不允许使用,或者响应中出现405异常。我需要一些帮助。我是laravel和vue的新手 这是我的密码Laravel 此路由不支持POST方法。支持的方法:GET、HEAD。“,…,laravel,http-status-code-405,Laravel,Http Status Code 405,我在使用laravel resourceApi控制器和vue js时遇到问题。我正在创建和应用程序,在使用vue和laravel的地方,我发布了一个值来存储控制器的方法,但它表示该方法不允许使用,或者响应中出现405异常。我需要一些帮助。我是laravel和vue的新手 这是我的密码 **UserController :** public function store(Request $request) { return ['message' => 'i hav
**UserController :**
public function store(Request $request)
{
return ['message' => 'i have your data'];
}
**Route:**
Route::apiResources(['user' => 'API\UserController']);
**Vue Code:**
<form @submit.prevent="createUser">
<div class="modal-body">
<div class="form-group">
<input
v-model="form.name"
placeholder="Enter name"
type="text"
name="username"
class="form-control"
:class="{ 'is-invalid': form.errors.has('name') }"
>
<has-error :form="form" field="name"></has-error>
</div>
<div class="form-group">
<input
v-model="form.email"
placeholder="Enter email"
type="email"
name="username"
class="form-control"
:class="{ 'is-invalid': form.errors.has('email') }"
>
<has-error :form="form" field="email"></has-error>
</div>
<div class="form-group">
<textarea
v-model="form.bio"
placeholder="Enter bio"
type="email"
name="username"
class="form-control"
:class="{ 'is-invalid': form.errors.has('bio') }"
/>
<has-error :form="form" field="bio"></has-error>
</div>
<div class="form-group">
<select
v-model="form.type"
placeholder="Enter bio"
name="type"
class="form-control"
:class="{ 'is-invalid': form.errors.has('type') }"
>
<option value>---Select User Role---</option>
<option value="admin">Admin</option>
<option value="user">Standard User</option>
<option value="author">Author</option>
</select>
<has-error :form="form" field="bio"></has-error>
</div>
<div class="form-group">
<input
v-model="form.password"
placeholder="Enter email"
type="password"
name="password"
class="form-control"
:class="{ 'is-invalid': form.errors.has('password') }"
>
<has-error :form="form" field="password"></has-error>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Create</button>
</div>
</form>
**Vue method :**
createUser() {
this.form.post("api/user");
}
错误:
API资源路由不支持创建和编辑功能,我指的是POST或PUT方法。APIROURCE方法自动排除这两个路由创建和编辑。如果要存储或更新某些内容,可以指定另一个路由及其相应的功能,或使用资源路由,而不是API资源路由,如下所示: 路由::资源['user'=>'API\UserController']
请仔细阅读文档axios中的post路由可能有错误。如果您显示createUser方法,这将很有帮助。但我猜您必须这样做才能运行代码
createUser()
{
axios.post('/api/user/store',{
//your fields and all
})
}
我已经尝试在我的程序中运行您的代码,您上面提到的所有代码似乎都很好。因为您没有提供createUser方法的代码,所以我认为您在调用api时可能犯了错误 请在您的axios post路线中尝试以下代码一次
methods:{
createUser(){
axios.post('/api/user/store', {
//keep your field here//
}).then(res => {
console.log(res)
}
}
}
axios有一个默认路径,因此如果get请求为/user,则路径为http://localhost/client 但是如果你是从另一条路打电话http://localhost/invoice 并且get请求是user,因此axios将当前路径作为基本路径http://localhost/invoice/invoice/user 因此,您必须使用/user 您可以查看以下文档:
你好,Saurav,我已经编辑了我的问题并添加了代码,请检查并让我知道其中的错误。你好,Pranay,createUser{this.form.post'api/user/store';}如果您的this.form是正确的,则将有效。否则您可能在this.form中出错。请使用上述代码并让我知道。如果它不提供解决方案,我需要查看您的完整代码。也可能是您没有在表单元素中提供参考。请检查一次。谢谢。虽然此代码可以回答问题,但它将是b最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,只使用代码的答案是没有用的。
createUser(){
axios.post('/api/user',{
/* parameter */
})
}