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 相关文章推荐
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
JavaScript实现把数字转换成中文
Jun 29 Javascript
jQuery+JSON实现AJAX二级联动实例分析
Dec 18 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
小程序实现单选多选功能
Nov 04 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 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 date()日期时间函数详解
2010/05/16 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
python入门教程 python入门神图一张
2018/03/05 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
python同时遍历两个list用法说明
2020/05/02 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
行政文员岗位职责
2013/11/08 职场文书
年度考核评语
2014/01/19 职场文书
消防安全责任书范本
2014/04/15 职场文书
诚信贷款承诺书
2014/05/30 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
小学美术教学反思
2016/02/17 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis