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 相关文章推荐
qTip 基于JQuery的Tooltip插件[兼容性好]
Sep 01 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
推荐10个2014年最佳的jQuery视频插件
Nov 12 Javascript
js中跨域方法原理详解
Jul 19 Javascript
AngularJS表达式讲解及示例代码
Aug 16 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 Javascript
jQuery实现两列等高并自适应高度
Dec 22 Javascript
基于AGS JS开发自定义贴图图层
Mar 31 Javascript
Angular 4.x 路由快速入门学习
May 03 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
vue实现点击关注后及时更新列表功能
Jun 26 Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 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
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP 中常量的知识整理
2017/04/14 PHP
php实现头像上传预览功能
2017/04/27 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jquery表单验证需要做些什么
2015/11/17 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
实例讲解Python中函数的调用与定义
2016/03/14 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
Django配置跨域并开发测试接口
2020/11/04 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
中专生求职自荐信范文
2013/12/22 职场文书
说明书格式及范文
2014/05/07 职场文书
爱国演讲稿400字
2014/05/07 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书