(编辑:jimmy 日期: 2024/11/19 浏览:2)
vue本身不支持发送AJAX请求,需要使用vue-resource(vue1.0版本)、axios(vue2.0版本)等插件实现
axios是一个基于Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对vue-resource进行更新和维护
本文为大家介绍vue使用axios发送AJAX请求
首页安装并引入axios
1、npm install axios -S #直接下载axios组件,下载完毕后axios.js就存放在node_modules\axios\dist中
2、网上直接下载axios.min.js文件
3、通过script src的方式进行文件的引入<script src="/UploadFiles/2021-04-02/axios.min.js">
axios基本使用方法
发送get请求
1、基本使用格式
格式1:axios([options]) #这种格式直接将所有数据写在options里,options其实是个字典
格式2:axios.get(url[,options]);
2、传参方式:
通过url传参
通过params选项传参
下面我们来看一个vue发送ajax get请求实例代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>发送AJAX请求</title> <script src="/UploadFiles/2021-04-02/vue.js">发送post请求(push,delete的非get方式的请求都一样)
1、基本使用格式
格式:axios.post(url,data,[options]);
2、传参方式
1、自己拼接为键值对
2、使用transformRequest,在请求发送前将请求数据进行转换
3、如果使用模块化开发,可以使用qs模块进行转换
4、注释:axios默认发送post数据时,数据格式是Request Payload,并非我们常用的Form Data格式,所以参数必须要以键值对形式传递,不能以json形式传参
下面看是一个vue发送ajax post请求实例代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>发送AJAX请求</title> <script src="/UploadFiles/2021-04-02/vue.js">上面我们所介绍的vue发送ajax请求都是在同一域名下进行的也就是同域或者说是同源
那么vue如何发送跨域的ajax请求呢?
vue发送跨域ajax请求
1、须知:axios本身并不支持发送跨域的请求,没有提供相应的API,作者也暂没计划在axios添加支持发送跨域请求,所以只能使用第三方库
2、使用vue-resource发送跨域请求
3、 安装vue-resource并引入
npm info vue-resource #查看vue-resource 版本信息
cnpm install vue-resource -S #等同于cnpm install vue-resource -save
4、基本使用方法(使用this.$http发送请求)
this.$http.get(url, [options])
this.$http.head(url, [options])
this.$http.delete(url, [options])
this.$http.jsonp(url, [options])
this.$http.post(url, [body], [options])
this.$http.put(url, [body], [options])
this.$http.patch(url, [body], [options])
下面再来看两个实例
向360搜索发送数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>发送AJAX请求</title> <script src="/UploadFiles/2021-04-02/vue.js">vue发送跨域ajax请求带jsonp参数<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>发送AJAX请求</title> <script src="/UploadFiles/2021-04-02/vue.js">Vue作为一个没有入侵性的框架并不限制你使用ajax框架
使用了Vue后,ajax部分你可以做如下选择:
1.使用JS原生XHR接口
2.引入JQuery或者Zepto 使用$.ajax();
3.Vue的github上提供了vue-resource插件 :
4.使用 fetch.js
5.自己封装一个ajax库
至于哪种方式适合自己的项目大家可以自行选择
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?