|
Axios
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
服务器端
使用json-server
1. axios基本使用
- // 1.GET
- axios({
- method: 'GET',
- url: 'http://localhost:3000/posts/2'
- }).then(res => {
- console.log(res);
- })
- // POST
- axios({
- method: 'POST',
- url: 'http://localhost:3000/posts',
- data: {
- title: 'test',
- author: 'lll'
- }
- }).then(res => {
- console.log(res);
- })
- // PUT
- axios({
- method: 'PUT',
- url: 'http://localhost:3000/posts/3',
- data: {
- title: 'test',
- author: 'new-lll'
- }
- }).then(res => {
- console.log(res);
- })
- // DELETE
- axios({
- method: 'DELETE',
- url: 'http://localhost:3000/posts/3',
- }).then(res => {
- console.log(res);
- })
复制代码 2. 其他请求方法
- axios.request(config)
- axios.get(url[, config])
- axios.delete(url[, config])
- axios.head(url[, config])
- axios.options(url[, config])
- axios.post(url[, data[, config]])
- axios.put(url[, data[, config]])
- axios.patch(url[, data[, config]])
- // request
- axios.request({
- method: 'GET',
- url: 'http://localhost:3000/posts/2'
- }).then(res => {
- console.log(res)
- })
- // POST
- axios.post(
- 'http://localhost:3000/comments',
- {
- "body": "other",
- "postId": 2
- }
- ).then(res => {
- console.log(res)
- })
复制代码 3. axios默认配置
- // default setting
- axios.defaults.method = 'GET'
- axios.defaults.baseURL = 'http:localhost:3000'
- axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
- axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
复制代码 4. axios创建实例对象
- // 创建实例对象
- const obj = axios.create({
- baseURL: 'http://localhost:3000'
- })
- // obj实例和axios对象几乎相同
- obj({
- url: 'posts/2'
- }).then(res => {
- console.log(res)
- })
复制代码 5. axios拦截器
- /**
- * 拦截器实质是函数
- * 请求拦截器,在请求发出时检查请求的参数等是否正确
- * 响应拦截器,在接受响应前,对响应进行预处理
- */
- // 请求拦截器
- axios.interceptors.request.use(functio(config) {
- console.log('req success')
- return config
- }), function (error) {
- console.log('req fail')
- return Promise.reject(error)
- }
- // 接收拦截器
- axios.interceptors.response.use(functio(response) {
- console.log('res success')
- return response;
- }, function (error) {
- console.log('res fail')
- return Promise.reject(error);
- });
复制代码 6. 取消请求
- let cancel = nul
- btns[0].onclick = function () {
- // 检查上一个请求是否结束
- if (cancel !== null) {
- cancel()
- }
- axios({
- url: '/posts',
- cancelToken: new axios.CancelTok(function executor(c) {
- cancel = c;
- })
- }).then(res => {
- cancel = null
- console.log(res)
- })
- btns[1].onclick = function () {
- cancel()
- }
复制代码 来源:https://www.cnblogs.com/ucbb/p/17101771.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|