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】。文章转载请联系作者。
评论