您的位置:首页 > Web前端 > Vue.js

Vue进阶(二十): Vue中的请求方式

2018-12-20 11:31 639 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunhuaqiang1/article/details/85115392

1.resource请求

cnpm install vue-resource --save
import VueResource from 'vue-resource'
Vue.use(VueResource)
this.$http.get("")

2.axios 请求

cnpm install axios --save
axios.defaults.baseURL = "根地址"
//vue页面引入import axios from 'axios'
axios.get(请求的地址)

3.axios 请求

cnpm install axios --save
Vue.prototype.http = axios //配置Vue原型
this.http.get("")

4.fetch(“”) // es6的请求方式
fetch是新一代XMLHttpRequest的一种替代方案。无需安装其他库。可以在浏览器中直接提供其提供的api轻松与后台进行数据交互。

基本用法:

fetch(url,{parmas}).then(res=>
return res.json()  //返回promise对象
).then(data=>{
return data     //返回真正数据
}).catch(err=>{
throw new Error(err)
})

(1) get 方式:

注意:如果是提交表单元素,那么一定要添加headers参数, 而且content-Type的值必须是application/x-www-form-urlencoded

heders:{
‘Content-Type’:“application/x-www-form-urlencoded”
},

(2)通过vuex请求数据

export default {
name:"Login2",
data(){
return{
mobile:"",
password:"",
val:""
}
},
methods:{
go(){
var data={
mobile:this.mobile,
password:this.password
}
this.$store.dispatch("login",data).then(res=>{
this.arr=res.data.data
}).catch(err=>{
console.log("登录;err",err)
})
}
}
}

store.js 中对应的action

login({commit},payload){

return new Promise((resolve,reject)=>{

fetch("/account/login",payload).then(res=>{

resolve(res)

}).catch(err=>{

console.log("登录--err:",err)
reject(err)

})

})
},

通过vuex实现请求,fetch发送请求可以不用带method,body和headers等参数

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: