不能 post 与 vue.js
Can't post with vue.js
我想 post 使用“vue-resource”的表单数据,但出现错误。
我用 vue-cli 和 vuetify 写了代码。
错误
[Vue warn]: Error in v-on handler: "TypeError: this.$http.post(...).error is not a function"
App.vue
<template>
<v-app>
<v-main>
<v-container class="px-0">
<v-form ref="form" @submit="addEvent">
<p class="text-uppercase">Question?</p>
<v-radio-group v-model="newEvent.select1" row>
<v-radio label="aaa" value="aaa"></v-radio>
<v-radio label="bbb" value="bbb"></v-radio>
</v-radio-group>
<input type="submit" depressed color="primary" value="OK!">
</v-form>
</v-container>
</v-main>
</v-app>
</template>
<script>
export default {
name: 'App',
data () {
return {
users: [],
newEvent: {
select1: '',
}
}
},
methods: {
addEvent: function (e) {
e.preventDefault()
if (this.isValid) {
console.log("success")
console.log("select1: " + this.newEvent.select1)
this.$http.post('URL..', this.newEvent, function (data, status, request) {
console.log("post success")
console.log(status)
}).error(function (data, status, request) {
console.log("post failed")
})
}else{
console.log("need edit")
}
},
},
computed: {
isValid: function () {
var valid = true
for (var key in this.data) {
if (!this.data[key]) {
valid = false
}
}
return valid
}
},
};
</script>
我尝试在main.js中写“import VueResource from'vue-resource'”,但是没有效果。
我该如何解决?
尝试使用 axios
或 fetch
// install axios first
import axios from 'axios'
// ... some code here
axios.post(url, data).then(response => {}).catch(error => {})
// or you can use fetch
let response = await fetch(url, { method:'POST', headers: {'Content-Type': 'application/json;charset=utf-8'}, body: JSON.stringify(data) })
// getting result
let json = await response.json()
我想 post 使用“vue-resource”的表单数据,但出现错误。 我用 vue-cli 和 vuetify 写了代码。
错误
[Vue warn]: Error in v-on handler: "TypeError: this.$http.post(...).error is not a function"
App.vue
<template>
<v-app>
<v-main>
<v-container class="px-0">
<v-form ref="form" @submit="addEvent">
<p class="text-uppercase">Question?</p>
<v-radio-group v-model="newEvent.select1" row>
<v-radio label="aaa" value="aaa"></v-radio>
<v-radio label="bbb" value="bbb"></v-radio>
</v-radio-group>
<input type="submit" depressed color="primary" value="OK!">
</v-form>
</v-container>
</v-main>
</v-app>
</template>
<script>
export default {
name: 'App',
data () {
return {
users: [],
newEvent: {
select1: '',
}
}
},
methods: {
addEvent: function (e) {
e.preventDefault()
if (this.isValid) {
console.log("success")
console.log("select1: " + this.newEvent.select1)
this.$http.post('URL..', this.newEvent, function (data, status, request) {
console.log("post success")
console.log(status)
}).error(function (data, status, request) {
console.log("post failed")
})
}else{
console.log("need edit")
}
},
},
computed: {
isValid: function () {
var valid = true
for (var key in this.data) {
if (!this.data[key]) {
valid = false
}
}
return valid
}
},
};
</script>
我尝试在main.js中写“import VueResource from'vue-resource'”,但是没有效果。
我该如何解决?
尝试使用 axios
或 fetch
// install axios first
import axios from 'axios'
// ... some code here
axios.post(url, data).then(response => {}).catch(error => {})
// or you can use fetch
let response = await fetch(url, { method:'POST', headers: {'Content-Type': 'application/json;charset=utf-8'}, body: JSON.stringify(data) })
// getting result
let json = await response.json()