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 dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
Dec 12 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 15 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
thinkphp5 路由分发原理
2021/03/18 PHP
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
Weblogic的布署方式
2013/08/23 面试题
2014年爱国卫生工作总结
2014/11/22 职场文书
期末考试复习计划
2015/01/19 职场文书
初三英语教学计划
2015/01/23 职场文书
特此通知格式
2015/04/27 职场文书
居委会工作总结2015
2015/05/18 职场文书
学前班教学反思
2016/02/24 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
python 中的@运算符使用
2021/05/26 Python
mysql中整数数据类型tinyint详解
2021/12/06 MySQL