为什么 axios 返回的 responseURL 与请求 url 不同?

以诺

我正在从我的 React Native 应用程序向本地服务的后端发出 Axios GET 请求。

响应“ config”对象显示“ baseURL”的“ http://192.168.1.68:8080/api”和“ url”的“ inventory?status=ALL&barcode=127035838”。

响应“请求”对象显示“ _url”的“ http://192.168.1.68:8080/api/inventory?status=ALL&barcode=127035838”。

然而!响应“responseURL”属性显示值“ http://192.168.1.68:8080/api/inventory?status=ALL&barcode=127035838%1D”。

来自应用程序的请求没有找到条形码,返回 204。从 Postman 发出相同的请求,我能够找到状态为 200 的条形码。这让我相信问题不在后端。我从 Axios 切换到 fetch 并发现相同的结果。

我猜%1D条形码末尾的附加“ ”是令人沮丧的原因。为什么 rsponseURL 与请求 url 不同。为什么 axios 添加了“ 1%D”,我怎样才能让它停止?还有其他事情吗?

我的解决方案:

let uriSN = serialNumber;
uriSN = encodeURIComponent(serialNumber);
uriSN = uriSN.replace('%1D', '');

对条形码进行编码,然后将其从“ 1%D”中剥离即可解决问题。我不知道这是最好的还是完整的解决方案。

阿迪亚·迪瓦卡尔

%1D是 url 编码的十六进制,29它是一个称为“组分隔符”的 ASCII 控制字符,因此您的 serialNumber 可能具有此字符,该字符正在通过encodeURIComponent函数相应地(按设计)进行解析这被称为“GIGO”(垃圾进垃圾出)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这些查询返回不同的结果?

如何显示从axios请求返回的图像(反应)?

为什么当请求URL相同且由CompletableFuture处理时,Tomcat使用不同的线程?

为什么axios返回promise而不是值?

Axios嵌套请求功能返回

为什么不同的查询返回重复的值?

从axios获取请求返回数据

为什么NodeJS请求返回奇怪的字符?

Axios HTTP DELETE请求返回415错误

Axios POST请求返回未定义

为什么(返回)和返回不同?

Axios发布Spotify API请求返回400

Axios请求返回Promise而不是数据本身

为什么简单的带有axios的get请求不会返回控制器的返回值?

从不同的请求返回不同的JSON对象

为什么在Amazon SDK中请求不存在的文件的预签名URL会返回URL?

提取请求,该请求返回coredata URL。为什么?以及如何访问托管对象?

为什么AES函数返回不同的值?

为什么gethostbyaddr()返回不同的结果?

nslookup为什么返回“ DNS请求超时”

为什么Java的HttpsURLConnection和curl的HEAD请求返回不同的标头?

为什么,请求返回符号——'?'

来自不同 Web 服务的嵌套 axios 请求

请求API但返回空,为什么?

为什么 tput 行返回不同的值?

axios 请求在 useEffect 中返回 undefined

为什么 XMLHttpRequest 请求正文返回 null?

即使 URL 有效且 API 正常运行,Axios 请求仍返回 404

为什么 axios.get(url).data 不起作用?(axios GET 请求和属性访问器;JavaScript)