翼度科技»论坛 编程开发 JavaScript 查看内容

Axios

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
Axios

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
服务器端

使用json-server
1. axios基本使用
  1. // 1.GET
  2. axios({
  3.     method: 'GET',
  4.     url: 'http://localhost:3000/posts/2'
  5. }).then(res => {
  6.     console.log(res);
  7. })
  8. // POST
  9. axios({
  10.     method: 'POST',
  11.     url: 'http://localhost:3000/posts',
  12.     data: {
  13.         title: 'test',
  14.         author: 'lll'
  15.    }
  16. }).then(res => {
  17.     console.log(res);
  18. })
  19. // PUT
  20. axios({
  21.    method: 'PUT',
  22.     url: 'http://localhost:3000/posts/3',
  23.     data: {
  24.         title: 'test',
  25.         author: 'new-lll'
  26.     }
  27. }).then(res => {
  28.     console.log(res);
  29. })
  30. // DELETE
  31. axios({
  32.     method: 'DELETE',
  33.     url: 'http://localhost:3000/posts/3',
  34. }).then(res => {
  35.     console.log(res);
  36. })
复制代码
2. 其他请求方法
  1. axios.request(config)
  2. axios.get(url[, config])
  3. axios.delete(url[, config])
  4. axios.head(url[, config])
  5. axios.options(url[, config])
  6. axios.post(url[, data[, config]])
  7. axios.put(url[, data[, config]])
  8. axios.patch(url[, data[, config]])
  9. // request
  10. axios.request({
  11.     method: 'GET',
  12.     url: 'http://localhost:3000/posts/2'
  13. }).then(res => {
  14.     console.log(res)
  15. })
  16. // POST
  17. axios.post(
  18.     'http://localhost:3000/comments',
  19.     {
  20.         "body": "other",
  21.        "postId": 2
  22.     }
  23. ).then(res => {
  24.     console.log(res)
  25. })
复制代码
3. axios默认配置
  1. // default setting
  2. axios.defaults.method = 'GET'
  3. axios.defaults.baseURL = 'http:localhost:3000'
  4. axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
  5. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
复制代码
4. axios创建实例对象
  1. // 创建实例对象
  2. const obj = axios.create({
  3.     baseURL: 'http://localhost:3000'
  4. })
  5. // obj实例和axios对象几乎相同
  6. obj({
  7.    url: 'posts/2'
  8. }).then(res => {
  9.     console.log(res)
  10. })
复制代码
5. axios拦截器
  1. /**
  2. * 拦截器实质是函数
  3. * 请求拦截器,在请求发出时检查请求的参数等是否正确
  4. * 响应拦截器,在接受响应前,对响应进行预处理
  5. */
  6. // 请求拦截器
  7. axios.interceptors.request.use(functio(config) {
  8.     console.log('req success')
  9.     return config
  10. }), function (error) {
  11.     console.log('req fail')
  12.     return Promise.reject(error)
  13. }
  14. // 接收拦截器
  15. axios.interceptors.response.use(functio(response) {
  16.     console.log('res success')
  17.     return response;
  18. }, function (error) {
  19.     console.log('res fail')
  20.     return Promise.reject(error);
  21. });
复制代码
6. 取消请求
  1. let cancel = nul
  2. btns[0].onclick = function () {
  3.     // 检查上一个请求是否结束
  4.     if (cancel !== null) {
  5.         cancel()
  6.     }
  7.     axios({
  8.         url: '/posts',
  9.         cancelToken: new axios.CancelTok(function executor(c) {
  10.             cancel = c;
  11.         })
  12.     }).then(res => {
  13.         cancel = null
  14.         console.log(res)
  15.     })
  16. btns[1].onclick = function () {
  17.     cancel()
  18. }
复制代码
来源:https://www.cnblogs.com/ucbb/p/17101771.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具