2016-12-19 5 views
0

전자 메일을 전달할 때 HTTP 요청을 통해 URL에 데이터를 게시하려고 시도하면 @% 252540으로 변환됩니다.@을 URL을 전달할 때 문자열로 변환합니다.

https://jsfiddle.net/amrindernoor/b8uvwr86/

가 어떻게이 문제를 방지 할 수 있습니다

window.open('https://secure.rspcdn.com/xprr/red/PID/3428/SID/[email protected]'); 

지정된 바이올린에서 봐 주시기 바랍니다 : 여기에

는 URL인가? 이메일 주소 매개

+0

에 대한 명확한 그림을 줄 것이다 스크린 샷입니까? –

+0

새 탭에 리디렉션이 있다고 생각합니다 – Beginner

+0

[JavaScript에서 URL 인코딩] 가능한 복제본? (http://stackoverflow.com/questions/332872/encode-url-in-javascript) – Tiger

답변

4

귀하의 URL https://secure.rspcdn.com/xprr/red/PID/3428/SID/[email protected]에는 여러 개의 내부 리디렉션이 있습니다.

각 리디렉션에서 이미 인코딩 된 전자 메일을 인코딩합니다. 처음에는

, 그대로 @이 전달됩니다

여기 정확히 문제의 원인이 무엇에 대한 간략한 설명입니다.

첫 번째 리디렉션 중에는 여전히 유효한 %40으로 인코딩됩니다.

각 리다이렉션 이후, 다시 인코딩되어 %252540이 최종 값이됩니다. 다음은

당신에게 여기에서`php` 태그 무엇이

enter image description here

+0

아! 알 겠어,하지만 지금 해결책은 뭔가? 두 번째 리디렉션이있는 서버에 액세스 할 수 없기 때문입니다. –

+0

인코딩 된 내용을 근본 원인에서 고칠 수 있도록 액세스 권한을 부여하려는 관련자에게 연락하는 것 외의 다른 해결책은 없습니다. – Samir

0

사용 encodeURIComponent :

window.open('https://secure.rspcdn.com/xprr/red/PID/3428/SID/rentown?email=' + encodeURIComponent('[email protected]')) 

(에 encodeURIComponent 의해 반환) 이메일 파라미터에 대한 정확한 값은 ˙amrinder % 40odz.com˙, [email protected] 서버 측로서 해석 될 것이다.

변경 후 해당 URL은 https://www.rsptrack.com/click.track?CID=287283&AFID=276422&SID=rentown&SID2=n&SID3=n&email=amrinder%40odz.com&zid=f197f1cfb16ae7d56748bca35ebe7658&tkp=3428&tku=4160&tks=86073803으로 302 리디렉션을 반환하며 이메일 매개 변수에 올바른 값이 포함 된 것으로 보입니다.

+0

나는 이것을 사용해 보았습니다. 당신은 나에게서 제공받은 바이올린에서도 똑같이 시도 할 수 있습니다. –

+0

여전히 같은 결과가 나오면 다음과 같이 업데이트됩니다. https://jsfiddle.net/b8uvwr86/1/ –

+0

@Insomania는 공백을 제거하고'= '기호 뒤에 ... – m0sa

0

encodeURIComponent() 함수를 사용하여 완료 할 수 있습니다. 이 함수는 특수 문자를 인코딩합니다. 또한, 다음과 같은 문자를 인코딩 : ,/? : @ & = + $ #

window.open('https://secure.rspcdn.com/xprr/red/PID/3428/SID/rentown?email=' + encodeURIComponent('[email protected]')) 

참고 :

는 인코딩 된 URI 구성 요소를 디코딩 할 수 decodeURIComponent() 기능을 사용합니다.