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

六安先锋网成都sem优化

六安先锋网,成都sem优化,沈阳高端网页,wordpress 收费主题URL 特殊字符 400 异常 笔者之前在写后端或者前端时,在处理表单时,经常有对特殊字符的检验处理,但自己也不清楚为什么要这么做,浅浅地以为可能是特殊字符不好看或者存取可能会造成异常?不过一直没遇到过问题&#xff…

URL 特殊字符 400 异常

笔者之前在写后端或者前端时,在处理表单时,经常有对特殊字符的检验处理,但自己也不清楚为什么要这么做,浅浅地以为可能是特殊字符不好看或者存取可能会造成异常?不过一直没遇到过问题,也就不在意这了。

巧的是,昨天在实习公司,测试小姐姐居然给我提了一个关于特殊字符异常的BUG,我就那了闷了,头一回见这种异常,不过做过了解后,才发现不是什么疑难杂症,一起来看看吧。

问题情景

开发环境:react,umi,ant design pro

某系统,创建任务阶段,在键入任务名字时,输入 “[” 字符时会弹出 400 异常。

对于任务名字,后端提供了一个检验重名的 GET 接口,这个 bug 是请求检验重名出了错。

前端检验重名的相关代码:

<ProFormText//...rules={[{ validator: validators.taskName }]}width="lg"name="taskName"placeholder="请输入任务名称"/>
const validator = {taskName: (value) => {// 调用检验重名接口 - GETfetchTaskNameValid({taskId: queryParams.taskId,taskName: value,).then(res => {//...})}
}

问题分析

  1. 在键入时就报了异常,是因为没有设置校验时机为 “onSubmit”,而是默认的 “onChange”
  2. 输入 “[” 报了异常,显然和 “[” 字符有关,"[" 本身也不算多少特殊的字符,但问题在于后端给的那个接口的请求方式是 GET,任务名字是在 URL 路径中传输的,问题就在这了,也许大家平常不会过多的关注 url 路径长什么样,但肯定注意到过中文在 URL 路径中是被转换成 “%xxxx” 的形式传输的,其实 “[” 之类的字符也是同样的道理,如果不进行转换直接传输这些特殊的字符,就违背的 URL 的语法规则,自然就会异常了。

解决方案

  1. 修正检验的触发时机,调整为 “onSubmit”
<ProFormText//...rules={[{ validator: validators.taskName, validateTrigger: "onSubmit" }]}width="lg"name="taskName"placeholder="请输入任务名称"/>
  1. 转义处理任务名中的特殊字符
    我如何知道哪些字符是特殊的呢?它们应该被转换成怎么样的字符?我一开始也是傻乎乎的一个个去查看特殊字符和它们的编码并手动转换,这其实不用我们去关系,Js 直接提供了编码字符串为合法 URL 的方法(encodeURL):
taskName: encodeURL(value),

这样就可以了,任务名中的特殊字符被转义了,不过更规范的做法不是直接处理任务名,而是应该在封装 Api 的时候,就对 URL 字符串进行转换后再请求。

话说 umi 内置的 request 怎么不主动在请求前 encodeURL 一下路径,作为框架的使用者不应该需要额外处理这个问题,就跟某些 orm 框架不默认给表名加上反引号一样,太不贴心了

http://www.hengruixuexiao.com/news/16926.html

相关文章:

  • 做ic哪些网站好做竞价排名适合百度这样的网络平台吗
  • 驾考学时在哪个网站做宁波seo运营推广平台排名
  • 建网站 西安网络营销的作用
  • 网站建设新闻分享买卖链接网
  • 艺术字体在线生成器英文企业网站优化服务
  • 购物网站建设合同北京搜索引擎优化
  • 17网站一起做网店池尾商圈seo排名优化价格
  • 小白如何制作网页百度seo是什么
  • 网页贷款seo资料
  • 织梦网站广告seo网站推广案例
  • 厦门做百度推广的网站广告推广免费平台
  • wordpress版权修改长沙专业竞价优化首选
  • java做教程网站可以免费领取会员的软件
  • 景区网站开发客源软件哪个最好
  • 文创设计网站百度网页版首页
  • 济南专业手机端网站建设网络推广属于什么专业
  • 网站地图制作怎么做最新的疫情情况
  • 南京做微网站优化的近义词
  • 东莞市建设局网站十大最靠谱教育培训机构
  • 如何对网站进行爬虫网址如何被快速收录
  • 罗定市住房和城乡建设局网站青岛网站推广系统
  • 购物网站主页怎么做软文自助发稿平台oem
  • wordpress 固定导航杭州谷歌seo公司
  • 资源网站的建设搜索引擎推广简称
  • 百度地图网站开发网站功能
  • 天津城乡住房建设厅网站首页为什么外包会是简历污点
  • 动态网站开发教程百度推广方式
  • 安徽网站优化价格咨询seo推广优化官网
  • wordpress全屏滚动网站贵阳关键词优化平台
  • 手机免费做网站全网关键词云查询