一、概况

①vuejs中没有内置任何ajax请求方法

②在vue1.0版本,使用的插件 vue resource 来发送请求,支持promise

③在vue2.0版本,使用社区的一个第三方库 axios ,也支持promise

④在HTML5时代,浏览器增加了一个特殊的异步请求方法 fetch,原生支持promise,由于兼容性问题,一般用于移动端

⑤还有的项目会使用vue和jquery混用,借助jQuery的ajax方法

二、axios库的使用

①安装和引入:

  • npm直接下载axios组件,下载完毕后axios.js就存放在node_modules\axios\dist中
npm install axios

  • 网上直接下载axios.min.js文件,或者使用cdn,通过script src的方式进行文件的引入
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

②发送get请求

  • 基本使用格式:
axios([options])        #这种格式直接将所有数据写在options里,options其实是个字典

axios.get(url[,options]);

  • 传参方式:通过url传参,通过params选项传参
  • 案例:
        <div id="app"><button @click='send'>发送Ajax请求</button><button @click='sendGet'>GET方式发送Ajax请求</button></div><script src="node_modules/vue/dist/vue.js"></script><script src="node_modules/axios/dist/axios.min.js"></script><script>new Vue({el:'#app',data:{user:{name:'eric',age:24},},methods:{send(){axios({method:'get',url:'http://www.baidu.com?name=jack&age=30'}).then(function(resp){console.log(resp.data);}).catch(err=>{console.log('请求失败:'+err.status+','+err.statusText);});},sendGet(){axios.get('server.php',{params:{name:'tom',age:20}}).then(resp=>{console.log(resp.data)}).catch(resp=>{console.log('请求失败:'+err.status+','+err.statusText);});},},});</script>

③发送post请求(push,delete的非get方式的请求都一样)

  • 基本使用格式
axios.post(url,data,[options]);

  • 传参方式:自己拼接为键值对;使用transformRequest,在请求发送前将请求数据进行转换;如果使用模块化开发,可以使用qs模块进行转换;
  • 注意:axios默认发送post数据时,数据格式是Request Payload,并非我们常用的Form Data格式,所以参数必须要以键值对形式传递,不能以json形式传参
  • 案例:
    <div id="app"><button @click='sendPost'>post方式发送Ajax请求</button></div><script src="node_modules/vue/dist/vue.js"></script><script src="node_modules/axios/dist/axios.min.js"></script><script>new Vue({el:'#app',data:{user:{name:'eric',age:24},},methods:{sendPost(){axios.post('server.php',this.user,{transformRequest:[function(data){let params='';for(let index in data){params+=index+'='+data[index]+'&';}return params;}]}).then(resp=>{console.log(resp.data)}).catch(err=>{console.log('请求失败:'+err.status+','+err.statusText);});},},});</script>

④发送跨域请求:axios本身并不支持发送跨域的请求,没有提供相应的API,作者也暂没计划在axios添加支持发送跨域请求,所以只能使用第三方库,可以使用vue-resource发送跨域请求

转载于:https://www.cnblogs.com/EricZLin/p/9380406.html

Vuejs发送Ajax请求相关推荐

  1. ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?

    我想创建ajax调用并发送数据与文件和其他变量,我也使用django,如果它的帮助.如何发送ajax请求文件与其他字符串的变量? 我尝试: js文件: $("#save-new-reques ...

  2. 使用rest_framework写api接口的一些注意事项(axios发送ajax请求)

    1. 类继承GenericAPIView,定义queryset 印象深刻的事: 由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset 没有设置 ...

  3. Vue之axios发送Ajax请求

    2.10 axios发送ajax请求 axios github 2.10.1 准备工程 创建一个django工程,例如 login.创建完成之后,再创建一个子应用,例如users.最后再设置一下模板文 ...

  4. tab 触发ajax请求,防止重复发送ajax请求的思索

    原标题:防止重复发送ajax请求的思索 防止重复发ajax请求是平时开发中遇到频次较高的问题了.我通常解决方案有如下几种, 1.UI限制 点击完按钮后,就禁用按钮, 并开启显示等待动画,收到服务器的成 ...

  5. 前端学axios还是ajax,【Web前端问题】axios发送ajax请求问题?

    在程序里借助axios库发送ajax请求,但是失败了,返回这个 然而在同一个位置换成jquery的代码却能成功,代码如下,不知axios哪里写的不对??谢谢~ //axios axios.post(& ...

  6. jQuery 发送 AJAX 请求

    AJAX 请求状态 xhr.readyState 可以用来查看请求当前的状态 参考官方文档的链接:https://developer.mozilla.org/zh-CN/docs/Web/API/XM ...

  7. axios 发送 AJAX请求

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  8. fetch 发送 AJAX请求

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. 发起一个ajax请求,发送ajax请求

    发送ajax请求 vue本身不支持发送ajax请求,需要使用vue-resourc axios等插件实现,建议使用axios axios是一个基于promise的http请求客户端,用来发送请求 基本 ...

最新文章

  1. nagios监控三部曲之——为什么nagios不能发送报警邮件(2)
  2. 计算机二级word保存要不要加.docx,计算机二级word实操题.docx
  3. 关于JAVA的参数列表传值的问题
  4. asp程序错误详细说明例表
  5. Codeforces Beta Round #4 (Div. 2)【完结】
  6. 【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序
  7. python3设置编码_python3 中文乱码与默认编码格式设定方法
  8. Lambda、函数式接口、Stream 一次性全给你
  9. 20.校准相机——SVD技巧第1部分,SVD技巧第2部分,SVD技巧第3部分_2
  10. 搜索引擎的那些事(摘取价格数据)
  11. supermap许可 (*.lic9d)
  12. 我靠! 算你运气好 a joke
  13. java 打印出库单_使用Jasperreporter生成入库出库单打印等报表操作
  14. 编程ING:人人都能学会程序设计
  15. 一个完全免费的在线文字云网站
  16. 微信小程序实现箭头方向转换与日历展开功能
  17. 杨洋江疏影封面照合体,《全职》诠释衣品即人品
  18. 迪杰斯特拉--链式向前星
  19. Real-ESRGAN
  20. java程序获取某年某月的天数

热门文章

  1. html的选择器使用
  2. 关于一维数组和二位数组的数组指针
  3. java 方法中定义类_在Java方法中使用类定义
  4. Linux服务器日常巡检脚本分享
  5. 腾讯再次劝退高龄员工,IT人的中年危机,我来教你化解!
  6. 【教程】手把手企业FTP搭建实例
  7. linux 用户与用户发邮件,Linux自动向指定用户发送邮件
  8. 计算机教学实验操作环境,一种基于虚拟机的个性化计算机实验教学环境.pdf
  9. python文件读取与输出_python基本文件操作(文件输入和输出)
  10. python3 线程隔离_Python并发编程之线程中的信息隔离(五)