iT邦幫忙

0

請問 JS 讀取怪異URL參數

如下網址

https://XXXX.com/?url=/ccp/ccp001?type=55555

因為URL中有2個問號,原本的作法是直接用

QueryString("url") 

輸出結果
/ccp/ccp001?type

等於後面的數字會無法印出來

請問能用QueryString把url完整印出來嗎?

看更多先前的討論...收起先前的討論...
dragonH iT邦超人 5 級 ‧ 2020-10-22 15:46:38 檢舉
QueryString 是哪個語言的 function
咖咖拉 iT邦研究生 4 級 ‧ 2020-10-22 15:51:53 檢舉
這是前人寫的code
我也是一知半解...
系統是ASP.NET MVC
你的應該是..
Url = Request.QueryString("url")
Homura iT邦高手 1 級 ‧ 2020-10-22 18:01:20 檢舉
這題越看越不知道在問什麼...

2 個回答

1
firecold
iT邦新手 3 級 ‧ 2020-10-22 15:49:10
最佳解答

其實該網址不太合規範
但硬要的話

// 取得完整網址(URL)
let githubURL = new URL('https://github.com/search?q=react&type=Code?aa=');
githubURL.href;      // "https://github.com/search?q=react&type=Code"

// 取得網頁參數部分
var url_query = githubURL.searchParams;  // URLSearchParams {}

抓到url_query在自己去切?

咖咖拉 iT邦研究生 4 級 ‧ 2020-10-22 16:30:43 檢舉

感謝 因為系統交接好多人一直拼裝套件程式
不太敢亂動 不過剛剛我把searchParams寫上去看起來都很正常

1
Homura
iT邦高手 1 級 ‧ 2020-10-22 16:10:38

你應該要先在後端用C#把網址html encode塞進變數裡
會幫你把特殊字元轉換成HTML 編碼字串
例如?
參考這篇 https://docs.microsoft.com/zh-tw/dotnet/api/system.web.httputility.htmlencode?view=netcore-3.1
然後要前端用JS取得變數後
在html encode讓他變回原本的網址
js encode參考這篇
https://stackoverflow.com/questions/7394748/whats-the-right-way-to-decode-a-string-that-has-special-html-entities-in-it/7394787

我要發表回答

立即登入回答