• Axios 封装


    请注意以下文件夹:

    utils下的setToken.js  是token封装(封装 Token-CSDN博客),service.js 是axios封装。

    Axios封装:

    1.安装axios
    在项目终端下 输入:

    npm install axios --save

    2.在main.js全局引入axios

    1. import axios from 'axios'
    2. Vue.prototype.$axios =axios   //挂载到原型,可以在全局使用

    3.在service.js  写入以下内容:

    1. import axios from "axios";
    2. import {getToken} from '@/utils/setToken.js'
    3. import {Message} from 'element-ui'
    4. const service = axios.create({
    5. baseURL:'/api' , // baseURL 会自动加在请求地址上
    6. timeout: 300
    7. })
    8. export async function request(method,url,headers, params,data){
    9. headers=headers||{};
    10. headers["token"] = getToken('token')
    11. return await new Promise((resolve, reject) => {
    12. service({url,method,params,data,headers})
    13. .then(res => {
    14. const resData=res.data
    15. resData.message=resData.message||'响应成功';
    16. // log('request',method,url,headers, params,data,resData);
    17. if(resData.code === 200) {
    18. resolve(resData);
    19. // 表格数据转换
    20. }else{
    21. Message({message:resData.message, type:'warning'})
    22. reject(new Error(resData.message))
    23. }
    24. })
    25. .catch(err => {
    26. log('request',method,url,headers, params,data,err);
    27. Message({message: '响应失败' , type:'warning'})
    28. reject(err)
    29. })
    30. } )
    31. }
    32. /**
    33. * 发送GET请求
    34. * @param {String} url 请求地址
    35. * @param {Object} params 请求参数
    36. * @returns
    37. */
    38. export function get(url, params){
    39. return request('get',url,{},params);
    40. }
    41. /**
    42. * 发送POST请求,没有报文体
    43. * @param {*} url 请求地址
    44. * @param {*} params 请求URL参数
    45. * @returns
    46. */
    47. export function post(url, params){
    48. return request('post',url,{},params);
    49. }
    50. /**
    51. * 发送POST请求,发送JSON报文体
    52. * @param {*} url 请求地址
    53. * @param {*} params 请求URL参数
    54. * @param {*} data 请求body参数
    55. * @returns
    56. */
    57. export function postJSON(url, params,data){
    58. return request('post',url,{'Content-Type': 'application/json;charset=UTF-8'},params,data);
    59. }
    60. /**
    61. * 送POST请求,发送From表单报文体
    62. * @param {*} url 请求地址
    63. * @param {*} params 请求URL参数
    64. * @param {*} data 请求body参数
    65. * @returns
    66. */
    67. export function postFrom(url, params,data){
    68. return request('post',url,{'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},params,data);
    69. }
    70. /**
    71. * 发送POST请求,发送FromData报文体,上传文件可用
    72. * @param {*} url 请求地址
    73. * @param {*} params 请求URL参数
    74. * @param {*} data 请求body参数
    75. * @returns
    76. */
    77. export function postFromData(url, params,data){
    78. var fromDate=new FormData();
    79. for(var key in data){
    80. fromDate.append(key,data[key]);
    81. }
    82. return request('post',url,{'Content-Type': 'multipart/form-data'},params,fromDate);
    83. }
    84. /**
    85. * 发送delete请求
    86. * @param {*} url 请求地址
    87. * @param {*} params 请求URL参数
    88. * @returns
    89. */
    90. export async function del(url, params){
    91. return request('delete',url,{},params);
    92. }
    93. /**
    94. * 发送PUT请求,没有报文体
    95. * @param {*} url 请求地址
    96. * @param {*} params 请求URL参数
    97. * @returns
    98. */
    99. export function put(url, params){
    100. return request('put',url,{},params);
    101. }
    102. /**
    103. * 发送PUT请求,发送JSON报文体
    104. * @param {*} url 请求地址
    105. * @param {*} params 请求URL参数
    106. * @param {*} data 请求body参数
    107. * @returns
    108. */
    109. export function putJSON(url, params,data){
    110. return request('put',url,{'Content-Type': 'application/json;charset=UTF-8'},params,data);
    111. }
    112. /**
    113. * 送PUT请求,发送From表单报文体
    114. * @param {*} url 请求地址
    115. * @param {*} params 请求URL参数
    116. * @param {*} data 请求body参数
    117. * @returns
    118. */
    119. export function putFrom(url, params,data){
    120. return request('put',url,{'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},params,data);
    121. }
    122. /**
    123. * 发送PUT请求,发送FromData报文体,上传文件可用
    124. * @param {*} url 请求地址
    125. * @param {*} params 请求URL参数
    126. * @param {*} data 请求body参数
    127. * @returns
    128. */
    129. export function putFromData(url, params,data){
    130. var fromDate=new FormData();
    131. for(var key in data){
    132. fromDate.append(key,data[key]);
    133. }
    134. return request('put',url,{'Content-Type': 'multipart/form-data'},params,fromDate);
    135. }

    例子:

  • 相关阅读:
    nginx配置vue前端代理
    EOS将发布的官方EVM怎么样?
    Docker第一天作业
    用于大规模 MIMO 检测的近似消息传递 (AMP)(Matlab代码实现)
    成都力寰璨泓科技有限公司抖音小店品质保障
    Java入门基础第9天Java eclipse如何调试代码
    RabbitMq(二) RabbitMQ 界面介绍
    SpringBoot整合WebSocket实战演练——Java入职十三天
    1-07 React配置postcss-px-to-viewport
    基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)
  • 原文地址:https://blog.csdn.net/hulei19900322/article/details/133756439