특수 문자 $
현재 .set()
를 사용하여 다음 매개변수의 값을 생성하고 설정하고 있습니다.
const myUrl = new URL("http://www.example.com/?"); let params = new URLSearchParams(); params.set('$param1', '60'); params.set('$param2', '100');
URL에 %24가 아닌
$
를 얻으려면 encodeURI()
를 사용해야 한다는 것을 알고 있습니다. code> - 그런데 어느 단계에서 해야 할까요?
매개변수를 문자열로 변환하고 이를 URL에 추가하는 동안 이와 같은 작업을 수행하면 이미 변환된 것입니다.
myUrl.search = encodeURI(params.toString()); // 출력: http://www.example.com/?%24param1=60&%24param2=100 // 예상값: http://www.example.com/?$param1=60&$param2=100
필요하고 서버에서 지원하므로 마지막에 수정하면 됩니다
귀하의 경우
$
字符被编码为%24
,因为它是URL中的保留字符。URLSearchParams
对象的set
메소드는 결과 문자열이 유효한 URL인지 확인하기 위해 이러한 문자를 자동으로 인코딩합니다.그러나
으아악$
문자를 있는 그대로 포함하려면 쿼리 문자열을 수동으로 작성하여 자동 인코딩을 우회할 수 있습니다.이렇게 하면 원하는 결과가 나오지만,
$
는 예약된 문자이므로 URL 사양에 따라 유효한 URL이 아닐 수도 있다는 점에 유의하세요. 이로 인해 특정 서버나 API에 문제가 발생할 수 있습니다.상호작용 중인 서버나 API를 제어하고 쿼리 문자열에
$
字符的URL,则此方法应该有效。否则,通常最安全的做法是使用URLSearchParams
문자가 포함된 URL을 처리할 수 있다고 확신하는 경우 이 방법이 작동할 것입니다. 그렇지 않은 경우 일반적으로URLSearchParams
에서 제공하는 자동 인코딩을 사용하는 것이 가장 안전합니다.이 솔루션이 귀하에게 적합한지 또는 추가 지원이 필요한지 확인하십시오.