Vue 进阶(二十): 请求方式详解

一、resource 请求
二、axios 请求
三、axios 请求(原型方式)
四、fetch 请求
fetch是es6新一代XMLHttpRequest的请求方式。无需安装其他库。可以在浏览器中直接提供其提供的api轻松与后台进行数据交互。
基本用法:
4.1 get 方式
4.2 POST 方式
注意:
fetch返回的是promise对象。所以fetch().then()第一个then里返回的并不是真正的数据。而是一个promise,所以我们需要通过链式操作第二个then()来获取真正的数据。fetch发送参数是通过body字段来实现的。body是fetch第二个参数的必选参数之一。params的参数如下
method(String): HTTP 请求方法,默认为GET;
body(String): HTTP 的请求参数;
headers(Object): HTTP 的请求头,默认为{};
credentials(String): 默认为omit,忽略的意思,也就是不带cookie;还有两个参数,same-origin,意思就是同源请求带cookie;include,表示无论跨域还是同源请求都会带cookie。
body带的参数是一个序列化以后的字符串。类似name="coc"&age=30.所以这里我们通过qs库进行序列化。注意通过cdn引入qs后qs函数应该是Qs,Qs.stringify(data)。
4.3 在 vue 中的应用
fetch支持在vue中使用。这样通过ajax请求就无需通过安装axios依赖库来实现。
具体使用:
4.3.1 组件中发送请求
4.3.2 表单通过 fetch 发送 ajax 请求
注意:如果是提交表单元素,那么一定要添加headers参数, 而且content-Type的值必须是application/x-www-form-urlencoded。
4.3.3 通过 vuex 请求数据
store.js 中对应的action:
通过vuex实现请求,fetch发送请求可以不用带method,body和headers等参数。
五、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/c605875b7a23182142660363e】。文章转载请联系作者。











评论