目录
  • 一、get请求:
  • 二、post请求:
  • 三、拓展补充

使用vue的脚手架搭建的前端项目,通常都使用axios封装的接口请求,项目中引入的方式不做多介绍,本文主要介绍接口调用与不同形式的传参方法。

一、get请求:

get请求比较简单,通常就是将参数拼接到url中 用? &连接或者用下面这种方式:

this.axios.get(this.getwxqyuserinfourl, {
params: {
agentid: this.dologinparams.agentid,
code: this.dologinparams.code
}
})

二、post请求:

1)表单数据 formdata传参方式
① axios配置,设置请求头:header
accept: text/plain, text/html –指定客户端能够接收的内容类型
content-type:content-type: application/x-www-form-urlencoded –请求的与实体对应的mime信息
一般设置方式如下:
this.axios.defaults.headers[‘content-type’] = ‘application/x-www-form-urlencoded;’; //配置请求头 //json格式的为:’application/json;charset=utf-8′
指定客户端能接受的内容类型 一般在全局的封装request中:main.js中

axios.interceptors.request.use(config => {
//指定客户端能够接收的内容类型
config.headers.accept = "application/json, text/plain,*/*"
return config;
}, error => promise.error(error)
)

跟设置单独的响应异常处理类似:

axios.interceptors.response.use(response => {
// 系统报错
return response;
}, error => {
// 可根据需要将请求报错跳转到网络异常页面
console.log("主页面捕获axios异常:"+json.stringify(error));
// router.push({
// path: "/networkerr",
// name: "networkerr"
// });
})

② 请求接口封装文件中,引入qs中间件,请求方法为post时,参数需要通过qs.stringify函数进行格式转换
qs模块是axios中自带的不需要下载,直接导入 核心就是把参数转换成标准的键值对
全局引用方式:main.js中

 import qs from 'qs';
 vue.prototype.$qs = qs; 

然后在各个页面就可以直接 this.$qs.stringify(params)使用了
单页面引用:

var qs = require('qs');
this.axios.post(this.posturl,qs.stringify({"value1":100,"vaule2":"123"}))

2)json字符串传参方式
① axios配置,设置请求头:head

this.axios.defaults.headers['content-type'] = 'application/json;charset=utf-8'; //配置请求头

② 请求参数使用son.stringify()函数转换,也可以不转换直接传参数

this.axios.post(this.imagesaveurl, json.stringify(params))

三、拓展补充

最后附上设置webservice接口直接返回json格式而不是xml格式的响应:
改变数据的返回方式,用 context.response.write代替return 语句,可返回json格式数据,如下:

context.response.charset = "utf-8"; //设置字符集类型 或者gb2312
context.response.contentencoding = system.text.encoding.utf8; //或者system.text.encoding.getencoding("gb2312");
context.response.write(jaodata);
context.response.end();

到此这篇关于vue + axios 请求接口方法与传参详解的文章就介绍到这了,更多相关vue axios 请求接口内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!