繁体   English   中英

如何在 URL 参数中转义斜杠

[英]How to escape slash in URL parameter

$.ajax({
        url: "/api/v1/cases/annotations/" + case_id + "/" + encodeURIComponent(current_plink),

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

我的 php 部分是这样的:

$app->get('/cases/annotations/:case_id/:prep_name', 'authenticatePathologist', function($case_id, $prep_name) use ($app) {

如果我尝试发送包含斜杠的参数,它会返回找不到页面。 在此处输入图片说明

但是如果我尝试发送不包含斜杠的参数,它会返回 OK。 在此处输入图片说明

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

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

?filters=new:item:text

它需要转义冒号。 为此,我尝试将其替换为?filters/:items/:text但这无法正常工作,因为 Chrome 未对“/”值进行编码。

尝试了 js [escape() method][1] ,它的效果非常好。

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

输出:

https://dev.test.something?filters=new%3Aitem%3Atext

希望这会有所帮助!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM