当前位置: 首页 > news >正文

网站优化公司效果免费代理上网ip地址

网站优化公司效果,免费代理上网ip地址,网站颜色表,郑州做网站外包的公司有哪些前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 问题场景 场景很简单#xff0c;就是一个正常 axios post 请求#xff1a; axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},me…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 问题场景 场景很简单就是一个正常 axios post 请求 axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},method: post,url: /api/lockServer/search,data: {username,pwd} }) 后台说没有接收到你的传参。 这就有点奇怪了我看了一下浏览器的请求信息是 OK 的参数都是有的而且之前这样用 axios 也没有这个问题。 但是这个接口是通用的别人都用了是 OK 的接口没问题。 问题原因 要点1 原因就是这次的接口使用 java spring mvc 并且在这个方法上使用了注解 RequestParam 那么这个是什么意思呢这个是只能从请求的地址中取出参数也就是只能从 usernameadminpasswordadmin 这种字符串中解析出参数。 要点2 我们还可以看到我们这次请求的 Content-Type application/json;charsetUTF-8 1 关于这一点需要说明的是 1、axios会帮我们 转换请求数据和响应数据 以及 自动转换 JSON 数据 2、在 axios 源码中发现下面这段内容很关键 我们知道在做 post 请求的时候我们的传参是 data: {...} 或者直接 {...} 的形式传递的嗯就是下面这两种形式 【第一种形式】 【第二种形式】 非常的刺激这两种形式无一例外都触发了 axios 源码中【很关键】的那一段代码 问题分析 也就是说我们的 Content-Type 变成了 application/json;charsetutf-8 然后因为我们的参数是 JSON 对象axios 帮我们做了一个 stringify 的处理。 而且查阅 axios 文档可以知道axios 使用 post 发送数据时默认是直接把 json 放到请求体中提交到后端的。 那么这就与我们服务端要求的 Content-Type: application/x-www-form-urlencoded 以及 RequestParam 不符合。 解决方案 解决方案一 【用 URLSearchParams 传递参数】 let param new URLSearchParams() param.append(username, admin) param.append(pwd, admin) axios({method: post,url: /api/lockServer/search,data: param }) 需要注意的是 URLSearchParams 不支持所有的浏览器但是总体的支持情况还是 OK 的所以优先推荐这种简单直接的解决方案 解决方案二 网上有很多方案说使用 axios.defaults.headers.post[Content-Type] application/x-www-form-urlencoded; 或者 {headers:{Content-Type:application/x-www-form-urlencoded}} 我试了一下其实这样还是不行的 【还需要额外的操作我们要将参数转换为query参数】 引入 qs 这个库是 axios 里面包含的不需要再下载了。 import Qs from qs let data {username: admin,pwd: admin }axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},method: post,url: /api/lockServer/search,data: Qs.stringify(data) }) 解决方案三 既然 axios 源码中有那么一段【很关键】的代码那么我们也可以通过修改 transformRequest 来达到我们的目的。 在 axios 的请求配置项中是有 transformRequest 的配置的 OK那么现在我们的请求就可以写成下面这个样子了 import Qs from qs axios({url: /api/lockServer/search,method: post,transformRequest: [function (data) {// 对 data 进行任意转换处理return Qs.stringify(data)}],headers: {deviceCode: A95ZEF1-47B5-AC90BF3},data: {username: admin,pwd: admin} }) 解决方案四 【重写一个 axios 实例重新实现属于我们自己的 transformRequest】 import axios from axios let instance axios.create({transformRequest: [function transformRequest(data, headers) {normalizeHeaderName(headers, Content-Type);if (utils.isFormData(data) ||utils.isArrayBuffer(data) ||utils.isBuffer(data) ||utils.isStream(data) ||utils.isFile(data) ||utils.isBlob(data)) {return data;}if (utils.isArrayBufferView(data)) {return data.buffer;}if (utils.isURLSearchParams(data)) {setContentTypeIfUnset(headers, application/x-www-form-urlencoded;charsetutf-8);return data.toString();}/*改了这里*/if (utils.isObject(data)) {setContentTypeIfUnset(headers, application/x-www-form-urlencoded;charsetutf-8);let _data Object.keys(data)return encodeURI(_data.map(name ${name}${data[name]}).join());}return data;}], }) 解决方案五 axios.post(/api/lockServer/search,userNameadminpwdadmin); 解决方案六 我们知道现在我们服务端同学接收参数用的是 RequestParam通过字符串中解析出参数 其实还有另一种是 RequestBody从请求体中获取参数。 我们让后端的同学改成 RequestBody 不就可以了吗 ---------------------  转自https://blog.csdn.net/csdn_yudong/article/details/79668655
http://www.zqtcl.cn/news/920218/

相关文章:

  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱
  • 专业的外贸网站建设wordpress后台编辑
  • 德清建设银行网站2016wordpress淘宝客程序
  • 网站建设包括两个方面专业网站设计企业
  • dnf可以去哪个网站做代练导购网站 模板
  • 苏州网站开发培训深圳福田区口岸社区
  • 信息网站开发网络公司jsp实战网站开发视频
  • 做 理财网站深圳网站快速优化公司
  • 公司网站建设方案江门建设建筑网站
  • 网站是生成静态好还是动态好怎么找到域名做的那个网站
  • 婚纱网站页面设计上海商地网站建设公司
  • 模板手机网站建设多少钱百度搜索词排名
  • 怎么学做网站住房和城乡建设部网站一级建造师
  • 政务公开网惠州seo推广公司
  • 建设英文商城网站网站开发工具选择
  • 沈阳市浑南区城乡建设局网站淄博哪里有网站建设平台