0
현재 페이지의 URL을 매개 변수로 사용하는 JavaScript 파일을로드합니다. 다음은 내가 사용하는 코드입니다.URL을 GET 매개 변수로 전달하기 위해 인코딩하는 방법
document.write(unescape('%3Cscript src=\"' + _vis_opt_protocol + 'domain.com/js.php&a='+account_id+'&url='+encodeURIComponent(document.URL)+'&random='+Math.random()+'\" type=\"text/javascript\"%3E%3C/script%3E'));
나는 encodeURIComponent가 URL을 올바르게 인코딩하는 작업을 수행 할 것이라고 생각했습니다. 그러나 JS 파일을로드하는 동안 브라우저는 인코딩 된 URL도 해석합니다. 예를 들어 document.URL이 http://example.com/?test=1#nono 인 경우 브라우저는 test를 JS에 대한 다른 매개 변수로 해석하고 앵커라고 생각하기 때문에 #nono 다음에 아무 것도 보내지 않습니다.
URL을 인코딩하여 서버로 전달하는 가장 좋은 방법은 무엇입니까? 나는 또한 base64 또는 인코딩의 다른 형태로 놀고 있었다.
감사합니다. 그것은 내 바보 같은 실수 였고 나는 해결책을 찾고있다! –
해결책은'unescape '을 사용하지 말라는 것입니다. (이제까지 쓰레기 기능이었습니다.)' '문자열의''시퀀스를 위장하기 위해'document.write'에서 사용 된 것으로 생각합니다. 이는 둘러싸는 스크립트 블록을 일찍 끝내서 깨질 것입니다. 그러나 대린 (Darin)이'<\ /'를 사용하여 대신하는 것이 훨씬 낫다. – bobince