vue axios数据请求及vue中使用axios的方法


Posted in Javascript onSeptember 10, 2018

axios 简介

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

--------------------------------------------------------------------------------
•从浏览器中创建 XMLHttpRequest
•从 node.js 发出 http 请求
•支持 Promise API
•拦截请求和响应
•转换请求和响应数据
•取消请求
•自动转换JSON数据
•客户端支持防止 CSRF/XSRF

在vue中数据请求需要先安装axios

 npm i --save axios

我们在使用请求数据的页面导入axios

import  axios from "axios"

然后在methods里面写数据的请求

methods:{
  getInfo(){
   let url = "url"
   axios.get(url).then((res)=>{
     //console.log(res)
     this.list1 = res
   })
}

在生命周期调用一下,一般我们数据请求使用的生命周期是Mounted

mounted() {
  this.getInfo()       
 }

这样我们就完成了axios的get方法请求

然后我们简答的说一说post请求,post请求与get请求其实变得不多

postInfo() {
   let url = "..."
   var params = new URLSearchParams();
   params.append('key', index);
   axios.post(url, params).then((res) => {
     console.log(res)
   })
 }

这样我们就可以成功的使用post方法请求数据了

补充:下面看下vue中使用axios

1.安装axios

npm:

$ npm install axios -S

cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2.配置axios

在项目中新建api/index.js文件,用以配置axios

api/index.js

import axios from 'axios';
let http = axios.create({
 baseURL: 'http://localhost:8080/',
 withCredentials: true,
 headers: {
  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
 },
 transformRequest: [function (data) {
  let newData = '';
  for (let k in data) {
   if (data.hasOwnProperty(k) === true) {
    newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&';
   }
  }
  return newData;
 }]
});
function apiAxios(method, url, params, response) {
 http({
  method: method,
  url: url,
  data: method === 'POST' || method === 'PUT' ? params : null,
  params: method === 'GET' || method === 'DELETE' ? params : null,
 }).then(function (res) {
  response(res);
 }).catch(function (err) {
  response(err);
 })
}
export default {
 get: function (url, params, response) {
  return apiAxios('GET', url, params, response)
 },
 post: function (url, params, response) {
  return apiAxios('POST', url, params, response)
 },
 put: function (url, params, response) {
  return apiAxios('PUT', url, params, response)
 },
 delete: function (url, params, response) {
  return apiAxios('DELETE', url, params, response)
 }
}

这里的配置了POST、GET、PUT、DELETE方法。并且自动将JSON格式数据转为URL拼接的方式

同时配置了跨域,不需要的话将withCredentials设置为false即可

并且设置了默认头部地址为:http://localhost:8080/,这样调用的时候只需写访问方法即可

3.使用axios

注:PUT请求默认会发送两次请求,第一次预检请求不含参数,所以后端不能对PUT请求地址做参数限制

首先在main.js中引入方法

import Api from './api/index.js';
Vue.prototype.$api = Api;

然后在需要的地方调用即可

this.$api.post('user/login.do(地址)', {
  "参数名": "参数值"
}, response => {
   if (response.status >= 200 && response.status < 300) {
    console.log(response.data);\\请求成功,response为成功信息参数
   } else {
    console.log(response.message);\\请求失败,response为失败信息
   }
});
Javascript 相关文章推荐
js wmp操作代码小结(音乐连播功能)
Nov 08 Javascript
js 获取服务器控件值的代码
Mar 05 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
JavaScript函数作用域链分析
Feb 13 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
Aug 31 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 Javascript
js用正则表达式筛选年月日的实例方法
Jan 04 Javascript
vue插件实现v-model功能
Sep 10 #Javascript
在Angular中使用JWT认证方法示例
Sep 10 #Javascript
详解vue-router传参的两种方式
Sep 10 #Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 #Javascript
webuploader分片上传的实现代码(前后端分离)
Sep 10 #Javascript
在Vue 中使用Typescript的示例代码
Sep 10 #Javascript
ES6使用export和import实现模块化的方法
Sep 10 #Javascript
You might like
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python计算N天之后日期的方法
2015/03/31 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
python实现RSA加密(解密)算法
2016/02/17 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python实现调度算法代码详解
2017/12/01 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
运动会邀请函范文
2014/02/06 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
个人工作能力自我评价
2015/03/05 职场文书
计算机实训心得体会
2016/01/14 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers