vue-resource HTTP API基础
来源:互联网 发布:中国城镇住户调查数据 编辑:程序博客网 时间:2024/06/08 05:05
vue-resource特点
vue-resource插件具有以下特点:
1. 体积小
vue-resource非常小巧,在压缩以后只有大约12KB,服务端启用gzip压缩后只有4.5KB大小,这远比jQuery的体积要小得多。2. 支持主流的浏览器
和Vue.js一样,vue-resource除了不支持IE 9以下的浏览器,其他主流的浏览器都支持。3. 支持Promise API和URI Templates
Promise是ES6的特性,Promise的中文含义为“先知”,Promise对象用于异步计算。URI Templates表示URI模板,有些类似于ASP.NET MVC的路由模板。
4. 支持拦截器
拦截器是全局的,拦截器可以在请求发送前和发送请求后做一些处理。拦截器在一些场景下会非常有用,比如请求发送前在headers中设置access_token,或者在请求失败时,提供共通的处理方式。
vue-resource使用
引入vue-resource
<script src="js/vue.js"></script><script src="js/vue-resource.js"></script>
HTTP
The http service can be used globally Vue.http
or in a Vue instancethis.$http
.
Usage
A Vue instance provides the this.$http
service which can send HTTP requests. A request method call returns aPromise that resolves to the response. Also the Vue instance will be automatically bound tothis
in all function callbacks.
{ // GET /someUrl this.$http.get('/someUrl').then(response => { // success callback }, response => { // error callback });}
Methods
Shortcut methods are available for all request types. These methods work globally or in a Vue instance.
// global Vue objectVue.http.get('/someUrl', [options]).then(successCallback, errorCallback);Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);// in a Vue instancethis.$http.get('/someUrl', [options]).then(successCallback, errorCallback);this.$http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
List of shortcut methods:
get(url, [options])
head(url, [options])
delete(url, [options])
jsonp(url, [options])
post(url, [body], [options])
put(url, [body], [options])
patch(url, [body], [options])
Options
string
URL to which the request is sentbodyObject
, FormData
, string
Data to be sent as the request bodyheadersObject
Headers object to be sent as HTTP request headersparamsObject
Parameters object to be sent as URL parametersmethodstring
HTTP method (e.g. GET, POST, ...)responseTypestring
Type of the response body (e.g. text, blob, json, ...)timeoutnumber
Request timeout in milliseconds (0
means no timeout)beforefunction(request)
Callback function to modify the request options before it is sentprogressfunction(event)
Callback function to handle the ProgressEvent of uploadscredentialsboolean
Indicates whether or not cross-site Access-Control requests should be made using credentialsemulateHTTPboolean
Send PUT, PATCH and DELETE requests with a HTTP POST and set the X-HTTP-Method-Override
headeremulateJSONboolean
Send request body as application/x-www-form-urlencoded
content typeResponse
A request resolves to a response object with the following properties and methods:
string
Response URL originbodyObject
, Blob
, string
Response bodyheadersHeader
Response Headers objectokboolean
HTTP status code between 200 and 299statusnumber
HTTP status code of the responsestatusTextstring
HTTP status text of the responseMethodTypeDescriptiontext()Promise
Resolves the body as stringjson()Promise
Resolves the body as parsed JSON objectblob()Promise
Resolves the body as Blob objectExample
{ // POST /someUrl this.$http.post('/someUrl', {foo: 'bar'}).then(response => { // get status response.status; // get status text response.statusText; // get 'Expires' header response.headers.get('Expires'); // get body data this.someData = response.body; }, response => { // error callback });}
Fetch an image and use the blob() method to extract the image body content from the response.
{ // GET /image.jpg this.$http.get('/image.jpg').then(response => { // resolve to Blob return response.blob(); }).then(blob => { // use image Blob });}
Interceptors
Interceptors can be defined globally and are used for pre- and postprocessing of a request. If a request is send usingthis.$http
or this.$resource
the current Vue instance is available asthis
in a interceptor callback.
Request processing
Vue.http.interceptors.push(function(request, next) { // modify method request.method = 'POST'; // modify headers request.headers.set('X-CSRF-TOKEN', 'TOKEN'); request.headers.set('Authorization', 'Bearer TOKEN'); // continue to next interceptor next();});
Request and Response processing
Vue.http.interceptors.push(function(request, next) { // modify request request.method = 'POST'; // continue to next interceptor next(function(response) { // modify response response.body = '...'; });});
Return a Response and stop processing
Vue.http.interceptors.push(function(request, next) { // modify request ... // stop and return response next(request.respondWith(body, { status: 404, statusText: 'Not found' }));});
- vue-resource HTTP API基础
- VUE基础API总结
- Vue学习基础之vue-resource和vue axios
- vue-resource
- vue-resource
- vue-resource
- vue vue-resource
- Resource API
- vue 引用 vue-resource步骤
- vue学习之vue-resource
- Vue mock & vue-resource & JSONP
- vue+vue-resource post请求
- vue vue-router vue-resource学习记录
- vue-resource插件使用
- vue-resource跨域
- vue-resource插件使用
- vue-resource插件使用
- vue-resource CRUD示例
- EOJ
- swift闪屏页
- struts2笔记
- astyle代码格式化工具
- MFC消息处理学习总结
- vue-resource HTTP API基础
- 112. Path Sum
- linux(ubuntu16.04)在安装PhpStorm并设置快速启动phpstorm
- 算法入门---java语言实现的二分搜索树小结
- Django文档——Model中的ForeignKey,ManyToManyField与OneToOneField
- N-Queens
- Android Studio中如何导入v4,v7和recyclerview-v7包?
- LeetCode
- Node.js 入门