我正在从我的React Native应用程序向我的本地服务后端发出Axios GET请求。
响应"config
“对象显示"baseURL
”为"http://192.168.1.68:8080/api
“和"url
”为"inventory?status=ALL&barcode=127035838
“。
request对象的响应显示了http://192.168.1.68:8080/api/inventory?status=ALL&barcode=127035838
的_url
。
然而!response "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
“解决了这个问题。我不知道这是最好的还是完全的解决方案。
发布于 2021-01-05 10:43:53
%1D
是29
的url编码十六进制,它是一种称为“组分隔符”的ASCII码控制字符,因此您的serialNumber可能具有此字符,该字符将通过encodeURIComponent
函数进行相应的解析(通过设计)。这就是所谓的"GIGO“(垃圾入垃圾出)。
https://stackoverflow.com/questions/65571645
复制相似问题