P粉1477476372023-08-18 09:43:27
由於您需要它且您的伺服器支援它,只需在最後修復它
const myUrl = new URL("http://www.example.com/?"); let params = myUrl.searchParams; params.set('$param1', '60'); params.set('$param2', '100'); console.log(myUrl.toString().replace(/%24/g,"$"))
P粉9860280392023-08-18 09:07:27
在您的情況下,$
字元被編碼為$
,因為它是URL中的保留字元。 URLSearchParams
物件的set
方法會自動對這些字元進行編碼,以確保產生的字串是有效的URL。
然而,如果您想按原樣包含$
字符,您可以透過手動建立查詢字串來繞過自動編碼:
const myUrl = new URL("http://www.example.com/?"); let params = ['$param1=60', '$param2=100'].join('&'); myUrl.search = params; console.log(myUrl.toString()); // 输出:http://www.example.com/?$param1=60&$param2=100
這將給您所需的輸出,但請注意,根據URL規範,這可能不是一個有效的URL,因為$
是一個保留字元。這可能會導致某些伺服器或API出現問題。
如果您控制您正在與之互動的伺服器或API,並且您確信它可以處理查詢字串中帶有$
字元的URL,則此方法應該有效。否則,通常最安全的做法是使用URLSearchParams
提供的自動編碼。
請確認此解決方案是否對您有效,或是否需要進一步協助。