基本语法
//基于全局Vue对象使用http Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback); Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback); //在一个Vue实例内使用$http this.$http.get('/someUrl', [options]).then(successCallback, errorCallback); this.$http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
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])
options对象
参数 | 类型 | 描述 |
url | string | 请求的 URL |
method | string | 请求的 HTTP 方法,例如:'GET','POST' 或其他 HTTP 方法 |
body | Object, FormData string | request body |
params | Object | 请求的 URL 参数对象 |
headers | Object | request header |
timeout | number | 单位为毫秒的请求超时时间 (0 表示无超时时间) |
before | function(request) | 请求发送前的处理函数,类似于 jQuery 的 beforeSend 函数 |
progress | function(event) | ProgressEvent 回调处理函数 |
credentials | boolean | 表示跨域请求时是否需要使用凭证(可用于解决 cors 跨域请求没带上 Cookie 的问题) |
emulateHTTP | boolean | 发送 PUT,PATCH,DELETE 请求时以 HTTP POST 的方式发送,并设置请求头的 X-HTTP-Method-Override |
emulateJSON | boolean | 将 request body 以 content-type 为 application/x-www-form-urlencoded 的方式发送 |
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 对象
方法 | 类型 | 描述 |
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 | 响应头 |
全局配置
Vue.http.options.emulateHTTP = true;
Vue.http.options.emulateJSON = true;
Vue.http.interceptors.push(function (request, next) { // ... // 请求发送前的处理逻辑 // ... next(function (response) { // ... // 请求发送后的处理逻辑 // ... // 根据请求的状态,response 参数会返回给 successCallback 或 errorCallback return response; }); });
上面的配置会对所有请求生效