Javascript 如何在URL参数中转义斜杠

Javascript 如何在URL参数中转义斜杠,javascript,php,Javascript,Php,我正在使用encodeURIComponent来转义斜杠。但这对我不起作用。此代码将“斜杠”转换为“%2F”,但apache无法识别它 我的php部分如下所示: $.ajax({ url: "/api/v1/cases/annotations/" + case_id + "/" + encodeURIComponent(current_plink), 若我尝试发送包含斜杠的参数,它将返回未找到的页面。 但若我尝试发送不包含斜杠的参数,它将返回OK。 你应该遵循 您应该使用en

我正在使用encodeURIComponent来转义斜杠。但这对我不起作用。此代码将“斜杠”转换为“%2F”,但apache无法识别它

我的php部分如下所示:

$.ajax({
        url: "/api/v1/cases/annotations/" + case_id + "/" + encodeURIComponent(current_plink),
若我尝试发送包含斜杠的参数,它将返回未找到的页面。

但若我尝试发送不包含斜杠的参数,它将返回OK。 你应该遵循

您应该使用
encodeURIComponent
对其进行两次编码,即
encodeURIComponent(encodeURIComponent(current_plink))
。如果只对其编码一次,服务器将对其进行解码,这与根本不编码是一样的。

我也有类似的url问题,如:

$app->get('/cases/annotations/:case_id/:prep_name', 'authenticatePathologist', function($case_id, $prep_name) use ($app) {
需要逃离上校的地方。为此,我尝试将其替换为格式化
?过滤器/:项目/:文本
,但这无法工作,因为Chrome没有编码“/”值

尝试了js
[escape()方法][1]
,效果非常好

?filters=new:item:text
输出:

let url = 'https://dev.test.something?filters=';
let filterString = 'new:item:text';
url = url + escape(filterString);

希望这对你有帮助

为什么不使用
+当前链接
?也许可以尝试使用
encodeURIComponent
@Gothdo进行双重编码,很有趣。你知道为什么吗?
escape()
不推荐使用
https://dev.test.something?filters=new%3Aitem%3Atext