$.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) {
答案 0 :(得分:5)
您应该使用encodeURIComponent
对其进行两次编码,即encodeURIComponent(encodeURIComponent(current_plink))
。如果你只对它进行一次编码,那么服务器就会对它进行解码,而且根本不对它进行编码。
答案 1 :(得分:1)
我的网址也有类似的问题,
?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
希望这对您有所帮助!
答案 2 :(得分:0)