Javascript

uri decode 방법

지네딘 주안 2020. 11. 23. 15:34
// timezone의 + 기호를 %2B로 바꾸지 않으면 공백으로 decoding 되어 ES에 쿼리 날릴 때 오류 발생	   
let detailLink = "http://ian-log.devel.kakao.com/errorlogs/" + log["rule"]["id"] + "?startTime=" + log["startTime"].replace("+", "%2B") + "&endTime=" + log["endTime"].replace("+", "%2B");

 

 + 를 URL decoder가 <SP> 공백으로 해석, 마찬가지로 & % 같은 특수 기호가 의도치 않은 방향으로 해석될 수 있음
encodeURIComponent(log["startTime"]) 처럼 써야함


근데 URL::toString 하면 알아서 다 파람으로 말아주니까 파람이 여러개인경우 저렇게 쓰는것도 방법입니다

    let detailLink = new URL("http://ian-log.devel.kakao.com/errorlogs/" + log["rule"]["id"]);
    detailLink.searchParams.append("startTime", log["startTime"])
    detailLink.searchParams.append("endTime", log["endTime"])
    detailLink = detailLink.toString()

감사합니다 크리스