#独家
后端接口传参需要添加请求头’application/x-www-form-urlencoded’,返回值默认是Text?

2023-04-23 0 1,623

在请求api中添加了

import request from '@/router/axios';
export const getOrde = (row) => {
  return request({
    headers: { 'content-type': 'application/x-www-form-urlencoded' },
    url: '/api/xlb',
    method: 'post',
    params:{...row}
  })
}

也在axios中添加了

axios.defaults.timeout = 10000;
  //返回其他状态吗
  axios.defaults.validateStatus = function (status) {
    return status >= 200 && status <= 500; // 默认的
  };
  //跨域请求,允许保存cookie
  axios.defaults.withCredentials = true;
  NProgress.configure({
    showSpinner: false
  });
  //HTTPrequest拦截
  axios.interceptors.request.use(config => {
  NProgress.start() // start progress bar
  const meta = (config.meta || {});
  const isToken = meta.isToken === false;
  config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
if (getToken() && !isToken) {
  config.headers['Blade-Auth'] = 'bearer ' + getToken() // 让每个请求携带token--['Authorization']为自定义key 请根据实际情况自行修改
}
//headers中配置serialize为true开启序列化
if (config.method === 'post' && meta.isSerialize === true) {
  config.data = new URLSearchParams(config.data).toString()//serialize(config.data);
}
return config
  }, error => {
return Promise.reject(error)
  });
  //HTTPresponse拦截
  axios.interceptors.response.use(res => {
NProgress.done();
const status = res.data.code || 200
const statusWhiteList = website.statusWhiteList || [];
const message = res.data.msg || '未知错误';
//如果在白名单里则自行catch逻辑处理
if (statusWhiteList.includes(status)) return Promise.reject(res);
//如果是401则跳转到登录页面
if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
// 如果请求为非200否者默认统一处理
if (status !== 200) {
  Message({
    message: message,
    type: 'error'
  })
  return Promise.reject(new Error(message))
}
return res;
  }, error => {
NProgress.done();
    return Promise.reject(new Error(error));
  })

  export default axios;

返回值是TEXT格式 用Postman 将text切换成Json才能显示文字

这种怎么获取响应值呢?

你图里返回的TEXT文本是正确的,只不过是中文的unicode表示而已,应该是后端返回的时候没有指定字符集编码,postman默认用原始unicode表示了
比如:\u4f5c 就是中文里的 “作”
返回值是什么类型应该由后端决定,并且给出返回的字符集编码方式,比如Java的SpringMVC写法:

@ResponseBody
@PostMapping(value = "/xxx", produces = "text/html;charset=UTF-8")
public String xxx(@RequestBody String requestJson) throws Exception {
}

这样一来返回的数据应该就是正常显示的中文了

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 后端接口传参需要添加请求头’application/x-www-form-urlencoded’,返回值默认是Text? https://www.jkxiazai.com/1634.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务