簡體   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