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 相关文章推荐
javascript检查表单数据是否改变的方法
Jul 30 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
用p5.js制作烟花特效的示例代码
Mar 21 Javascript
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
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 和 XML: 使用expat函数(二)
2006/10/09 PHP
php pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
python 剪切移动文件的实现代码
2018/08/02 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
pandas的qcut()方法详解
2019/07/06 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
统计每一学生的平均成绩
2014/06/06 面试题
11月红领巾广播稿
2014/01/17 职场文书
恰同学少年观后感
2015/06/08 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python