Vue-resource实现ajax请求和跨域请求示例


Posted in Javascript onFebruary 23, 2017

vue-resource是Vue提供的体格http请求插件,如同jQuery里的$.ajax,用来和后端交互数据的。

在使用时,首先需要安装vue-resource插件

1.在项目跟目录上安装:

npm install vue-resource

 2.引入resource插件

import VueResource from 'vue-resource'; 
Vue.use(VueResource)

3.发送请求:

this.$http.get("http://www.vrserver.applinzi.com/aixianfeng/apihome.php").then(function(res){ 
  console.log(res) 
 })

ES6写法:

this.$http.get('url', [options]).then((res) => { 
// 处理成功的结果}, (res) => { // 处理失败的结果});

在发送请求后,使用then方法来处理响应结果,then方法有两个参数,第一个参数是响应成功时的回调函数,第二个参数是响应失败时的回调函数。

then方法的回调函数也有两种写法,第一种是传统的函数写法,第二种是更为简洁的ES 6的Lambda写法:

POST请求:

this.$http.post("http://www.vrserver.applinzi.com/aixianfeng/apihome.php",{name:"abc"},{emulateJSON:true}).then( 
   function (res) { 
    // 处理成功的结果 
    alert(res.body); 
   },function (res) { 
   // 处理失败的结果 
   } 
  );

JSONP请求:

new Vue({ ready() { 
 this.$http.jsonp('/url', {name:"abc"}) .then(function (res){ 
  console.log(res) 
 }, function (res) { 
  console.log(res) 
  }); 
 } 
})

吐槽一下,现在应该没有用到JSON的了吧,有的话真呵呵呵了。

支持的HTTP方法

vue-resource的请求API是按照REST风格设计的,它提供了7种请求API:

  • get(url, [options])
  • head(url, [options])
  • delete(url, [options])
  • jsonp(url, [options])
  • post(url, [body], [options])
  • put(url, [body], [options])
  • patch(url, [body], [options])

除了jsonp以外,另外6种的API名称是标准的HTTP方法。当服务端使用REST API时,客户端的编码风格和服务端的编码风格近乎一致,这可以减少前端和后端开发人员的沟通成本。

客户端请求方法 服务端处理方法
this.$http.get(...) Getxxx
this.$http.post(...) Postxxx
this.$http.put(...) Putxxx
this.$http.delete(...) Deletexxx

options对象

发送请求时的options选项对象包含以下属性:

参数 类型 描述
url string 请求的URL
method string 请求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法
body Object, FormDatastring request body
params Object 请求的URL参数对象
headers Object request header
timeout number 单位为毫秒的请求超时时间 (0 表示无超时时间)
before function(request) 请求发送前的处理函数,类似于jQuery的beforeSend函数
progress function(event) ProgressEvent回调处理函数
credientials boolean 表示跨域请求时是否需要使用凭证
emulateHTTP boolean 发送PUT, PATCH, DELETE请求时以HTTP POST的方式发送,并设置请求头的X-HTTP-Method-Override
emulateJSON boolean 将request body以application/x-www-form-urlencoded content type发送

emulateHTTP的作用

如果Web服务器无法处理PUT, PATCH和DELETE这种REST风格的请求,你可以启用enulateHTTP现象。启用该选项后,请求会以普通的POST方法发出,并且HTTP头信息的X-HTTP-Method-Override属性会设置为实际的HTTP方法。

Vue.http.options.emulateHTTP = true;

emulateJSON的作用

如果Web服务器无法处理编码为application/json的请求,你可以启用emulateJSON选项。启用该选项后,请求会以application/x-www-form-urlencoded作为MIME type,就像普通的HTML表单一样。

Vue.http.options.emulateJSON = true;

response对象

response对象包含以下属性:

方法 类型 描述
text() string 以string形式返回response body
json() Object 以JSON对象形式返回response body
blob() Blob 以二进制形式返回response body
属性 类型 描述
ok boolean 响应的HTTP状态码在200~299之间时,该属性为true
status number 响应的HTTP状态码
statusText string 响应的状态文本
headers Object 响应头

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
HTML-CSS群中单选引发的“事件”
Mar 05 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
JavaScript中json对象和string对象之间相互转化
Dec 26 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
Aug 17 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
解决await在forEach中不起作用的问题
Feb 25 Javascript
jQuery事件详解
Feb 23 #Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 #Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 #Javascript
Javascript 链式作用域详细介绍
Feb 23 #Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 #Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 #Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 #Javascript
You might like
很好用的PHP数据库类
2009/05/27 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
php学习之流程控制实现代码
2011/06/09 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
javascript下function声明一些小结
2007/12/28 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
js html实现计算器功能
2018/11/13 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
python实现二分查找算法
2017/09/21 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python3.8下载及安装步骤详解
2020/01/15 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
工程开工庆典邀请函
2014/02/01 职场文书
三爱活动实施方案
2014/03/19 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
应聘英语教师求职信
2014/04/24 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
数据设计之权限的实现
2022/08/05 MySQL