当前位置: 首页 > 知识库问答 >
问题:

javascript - axios的get请求带小括号()后报400?

越昊穹
2023-07-11

axios的url上带小括号()会报400

let name = o.name
instanceFileDown.get('/db/download', {name: name, type: o.type})

我使用axios的get请求下载文件时,给后台发送了文件的文件名,文件名上有小括号,axios会转义中文字符,小括号不被转义
image.png

手动转义

我以为是小括号没有被转义报的错,于是手动转义了,但还是不行

instanceFileDown.get('/db/download?' + qs.stringify({name: o.name, type: o.type}, {}) //手动转义

image.png

这个url看着也没问题,为什么会报400呢?

而且只要文件名不带小括号,就可以下发成功

共有2个答案

柴砚文
2023-07-11

使用 encodeURIComponent() 这个API把带有 () 这种特殊字符的文件名转义一下,看看是否后端可以正确解析。

但是看你补充了手动转移仍旧会出现问题,多半就是后端的锅,让后端检查一下解析是否没处理好。

东方俊杰
2023-07-11

遇到这种问题,第一时间问后台,怎么回事,后台那边能看到的。自信点

 类似资料:
  • url上带小括号()就报400, 转义了还是不行 后台代码 但是如果改成pathVariable就行了 url上带()就报错,带[]和{}都没问题,我在前端区也发了,普遍认为是后台的问题 https://segmentfault.com/q/1010000043992007 所以问题出在哪里呢?是@RequestParam的问题吗?tomcat是springboot自带的,也没有特殊配置。

  • 编辑:这可能是CORS的问题,我在本地主机上。。。 在Javascript中,我可以设置请求头,获取并返回如下响应: 问题: 我想学习VueJs,并想用VueJs Axios复制这个,但是我很困惑如何设置请求标题,因为我在上面的JS中。 以下是我失败的尝试: 如何像在上面的JS中那样专门设置请求头。我想学习如何在Vue/Axios中实现以下功能。 谢谢。

  • 问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随

  • 问题内容: 我需要在JavaScript中执行HTTPGET请求。最好的方法是什么? 我需要在Mac OS X破折号小部件中执行此操作。 问题答案: 浏览器(和Dashcode)提供XMLHttpRequest对象,该对象可用于从JavaScript发出HTTP请求: 但是,不鼓励同步请求,并且将按照以下方式生成警告: 注意:从Gecko 30.0(Firefox 30.0 / Thunderbi

  • 问题内容: 在swift 3中建议使用带参数的GET的哪种方法? 范例: 提前致谢 ! 问题答案: 示例如何使用请求。

  • 问题内容: 我是新手,所以我的代码可能会出现很多错误,但是我要实现的目标是将GET请求发送到带有 参数的服务器。鉴于我的函数有两个参数,我试图做到更多。我不确定如何将两者结合到实际的URLRequest中?到目前为止,这是我尝试过的 问题答案: 建立请求时,请求的主体没有,但是所有内容都放在URL上。要构建网址(并正确地将其转义), 您还可以使用. 唯一的窍门是,大多数Web服务都需要+转义字符百