2009-11-15 6 views

답변

33

encodeURIComponent()가 작동해야합니다. 예를 들어,

'&url=' + encodeURIComponent("http://a.com/?q=query&n=10") 

(모든 '&'또는하지 않는 '?'라는 값으로)

"&url=http%3A%2F%2Fa.com%2F%3Fq%3Dquery%26n%3D10" 

를 생성한다.

param["url"] = "http://a.com/?q=query&n=10" 

난 당신이 사용중인 서버 확실하지 않다 (예를 들면 레일, 장고, ...)하지만 : 서버가이 URL을 가져옵니다 때 , 원래를 얻기 위해 그것을 해독 할 수 있어야한다 정상적인 시스템에서는 "즉시 사용할 수있는"상태로 작동해야합니다.

-1

URL을 인코딩 할 때 escape()를 사용하면 앰퍼샌드가 인코딩되지 않으므로 인코딩되지 않습니다.

+3

'escape'는'encodeURIComponent'와 비슷하지만'+'문자와 비 ASCII 문자에 대해 잘못된 출력을 생성합니다. 절대 사용해서는 안됩니다. – bobince

3

'& url ='+ encodeURIComponent (url); 브라우저에서 서버로 URL을 전달하면 URL이 인코딩됩니다.

예, 그렇게해야합니다. encodeURIComponent은 쿼리 문자열의 일부를 입력하기위한 텍스트 값을 인코딩하는 올바른 방법입니다.

그러나 서버에서 디코딩 될 때 url의 매개 변수는 단일 URL 매개 변수의 일부가 아닌 별도의 매개 변수로 해석됩니다.

그러면 서버가 실제로 깨졌습니다. 그게 실제로 일어나는 경우, 서버 측에서 수정해야합니다.

코드?

-2

솔직히 Google URL Shortener로 이동하십시오. 그런 다음 url 쿼리 문자열의 URL 코드를 사용할 수 있습니다. http://example.com/url/A7dh3

응용 프로그램에서 Google URL Shortener 도메인 이름을 앞에두고 리디렉션을 수행하십시오. 이렇게하면 Google 웹 로그 분석을 통해 URL에 추적 기능이 추가됩니다. 이 접근법에는 많은 장점이 있습니다. 짧은 코드와 추적 데이터가 추가되었습니다.

0

시도하지 않았지만 BASE64 인코딩/디코딩도 작동해야합니다.

관련 문제