详解vue前后台数据交互vue(4)

var promise - this.$http.post( 'http://example.com/book/cretae', // 请求体中要发送给服务端数据 { cat: '1', name: 'newBook' }, { headers: { 'Content-Type': 'x-www-form-urlencoded' } } ); promise.then(function ( response ) { // 成功回调 }, function ( response ) { // 失败回调 }); promise.catch(function ( response ) { // 失败回调 }); promise.finally(function () { // 执行完成或者失败回调后都会执行此逻辑。 }); // 所有回调函数的this都指向组件实例

url模板

vue-resource 使用url-template库来解析url模板.

在vue-resourece方法请求传参时 可以在url中放置花括号包围的占位符。vue-resouce内部会使用url0template将占位符用params对象中的属性进行替换。

question

如何发送JSONP请求

vue-resouce提供三种调用方式进行跨域

全局方法

Vue.http({ url: 'http://example.com/books', // 参数部分,将会拼接在url之后 params: { cat: 1 }, method: 'JSONP' }) .then(function ( response ){ }, function () { //error });

实例底层方法

http.$http({ url: 'http://example.com/books', params: { cat: 1 }, method: 'JSONP' }) .then(function () { // this 指向当前组件实例 }, function () { });

实例便捷方法

this.$http.jsonp( 'http://www.example.com/books', { cat: 1 } ) .then(function () { }, function () { });

修改数据类型

如何修改发送给服务端的数据类型

在默认情况下,对于PUT,PSOT,PATCH,DELETE等请求,请求头中的Content-Type为appliaction/json即JSON类型。有时候需要将数据提交为指定类型如application/x-www-form-urlencoded,multipart/form-data,txt/plain等。

全局headers配置

Vue.http.heaers.post['Content-Type'] = 'application/x-www-form-urlencoded'

实例配置

this.$http.post( 'http://example.com/books', // 成功回调 function ( data, status, request ) { if ( status == 200 ) { consl.dir(data); } }, // 配置请求头 headres: { 'Content-Type': 'multipart/form-data' } ); // 实例配置的优先级高于全局配置

跨域请求出错

跨域请求需要服务端开启CORS支持

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjfgs.html