当前位置:   article > 正文

axios请求_axios请求 js

axios请求 js

一、了解Ajax

Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。

使用 JavaScript 向服务器提出请求并处理响应而不阻塞用户核心对象XMLHttpRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。

Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

二、axios是什么

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

三、使用axios

1、导入依赖

npm install axios

2、封装axios

request.js

  1. import axios from 'axios'
  2. import { ElMessage } from 'element-plus'
  3. import { Plus } from '@element-plus/icons-vue'
  4. const instance = axios.create({
  5. //请求的基础路径
  6. baseURL:"http://localhost:8080/account",
  7. //超时时间(毫秒)
  8. timeout:10000
  9. })
  10. //请求拦截器
  11. instance.interceptors.request.use(
  12. config =>{
  13. //请求前设置请求信息
  14. config.headers['Content-Type'] = 'application/json;charset=utf-8'
  15. // let token = window.localStorage.getItem('token')
  16. // if(token != null){
  17. // config.headers.set('token',token)
  18. // }
  19. //设置完成后必须返回config
  20. return config
  21. },
  22. error =>{
  23. console.log(error.message)
  24. return Promise.reject(error)
  25. }
  26. )
  27. //返回拦截器
  28. instance.interceptors.response.use(
  29. (response) => {
  30. //响应状态码为200时执行
  31. //提取token
  32. // const localtoken = window.localStorage.getItem("token")
  33. // if(localtoken == null){
  34. // let token = response.data.data.token
  35. // if(token != null){
  36. // console.log(token)
  37. // //将token存入localstorage
  38. // window.localStorage.setItem('token',token)
  39. // }
  40. // }
  41. //未登录则清空token
  42. // let code = response.data.code
  43. // if(code == 401){
  44. // window.localStorage.removeItem("token")
  45. // }
  46. // let res = response.data
  47. // if(typeof res === 'string'){
  48. // res = res ? JSON.parse(res) : res
  49. // }
  50. // console.log(res)
  51. let code = response.data.code
  52. if(code == 200){
  53. let messages = response.data.message
  54. ElMessage({
  55. message: messages,
  56. type:'success'
  57. })
  58. }else{
  59. let messages = response.data.message
  60. ElMessage({
  61. message: messages,
  62. type: 'error'
  63. })
  64. }
  65. return response
  66. },
  67. (error) => {
  68. //返回异常处理
  69. console.log(error.message)
  70. //最后一定要返回一个promise
  71. return Promise.reject(error)
  72. }
  73. )
  74. //向外导出
  75. export default instance

在这里我们将axios封装成我们自定义的对象,使用时只需要引用request.js即可

3、使用axios发起请求

  1. <script>
  2. import {ref} from 'vue'
  3. import request from 'request.js'
  4. //定义接收数据对象
  5. const result = ref({})
  6. //POST请求
  7. const postRequest = async() => {
  8. return request.post('/hello',value) // '/hello'是请求路径,是拼接在我们统一定义的请求头后面,value是json传参携带的对象
  9. }
  10. //GET请求
  11. const getRequest = async() => {
  12. return request.get('/hello',{
  13. params:{
  14. size:2 //这是param传参时携带的数据,key:value类型
  15. }
  16. })
  17. }
  18. //调用接口请求数据
  19. const upload = async()=>{
  20. //post请求,get一样的步骤
  21. const {data} = await postRequest()
  22. result.value = data
  23. }
  24. </script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/784041
推荐阅读
相关标签
  

闽ICP备14008679号