我正在从 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
”可以解决该问题。我不知道这是最好的还是完整的解决方案。
答案 0 :(得分:0)
%1D
是 29
的 url 编码十六进制,它是一个 ASCII 控制字符,称为“组分隔符”,因此您的 serialNumber 可能具有此字符,该字符通过encodeURIComponent
函数。这就是众所周知的“GIGO”(垃圾进垃圾出)。