Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React routes参数自动解码字符串_Reactjs_React Router - Fatal编程技术网

Reactjs React routes参数自动解码字符串

Reactjs React routes参数自动解码字符串,reactjs,react-router,Reactjs,React Router,Hi路由器参数是否自动解码字符串 例如,我有这条路线 <Route path="/callback/:url"/> 当我用C5jb20%3D 当I console.log()显示参数时,它将打印C5jb20= 这是预期的行为吗?我是否可以更改此行为,以便仍然获得编码字符串 谢谢 C5jb20%3D是一个URL编码字符串,它是对URL中的特殊字符进行编码的一种方法。例如,如果您有一个URL参数,如?redirect=/some/path,服务器可能会将正向斜杠解释为路由路径,并将

Hi路由器参数是否自动解码字符串

例如,我有这条路线

<Route path="/callback/:url"/>

当我用
C5jb20%3D

当I console.log()显示参数时,它将打印
C5jb20=

这是预期的行为吗?我是否可以更改此行为,以便仍然获得编码字符串


谢谢

C5jb20%3D
是一个URL编码字符串,它是对URL中的特殊字符进行编码的一种方法。例如,如果您有一个URL参数,如
?redirect=/some/path
,服务器可能会将正向斜杠解释为路由路径,并将预期的路由弄乱。这就是为什么您会在URL中看到类似于
?重定向=%2Fsome%2Fpath
,以及您的示例的原因

window.location.path
将具有原始的未编码URL

您还可以通过以下方式取回:


不过,根据您的用例,您可能不想这样做。

您好,谢谢您的回答!那么,这是react路由器的预期行为吗?因为如果是,那么在我从params中提取参数后,我将不会对其进行解码。。我只是不想再次出现与此编码字符串相关的意外错误:)谢谢!是的,这是预期和期望的行为。问题是,在URL中用字符(+或-)替换空格是很常见的,如果文本中存在这种情况,就无法区分它们。例如,
iphone7%2B+卖家
将在routeParams中自动转换为
iphone7++卖家
。如果可以禁用自动解码,则可以解决此问题。
encodeURIComponent('C5jb20=') // "C5jb20%3D"