'&'사용 url = '+ encodeURIComponent (url); 브라우저에서 서버로 URL을 전달하는 것은 URL을 인코딩하지만 서버에서 디코딩 될 때 url의 매개 변수는 단일 URL 매개 변수의 일부가 아닌 별도의 매개 변수로 해석됩니다.자바 스크립트 : url을 URL 매개 변수로 전달하는 권장 방법은 무엇입니까?
url을 URL 매개 변수로 전달하는 권장 방법은 무엇입니까?
'&'사용 url = '+ encodeURIComponent (url); 브라우저에서 서버로 URL을 전달하는 것은 URL을 인코딩하지만 서버에서 디코딩 될 때 url의 매개 변수는 단일 URL 매개 변수의 일부가 아닌 별도의 매개 변수로 해석됩니다.자바 스크립트 : url을 URL 매개 변수로 전달하는 권장 방법은 무엇입니까?
url을 URL 매개 변수로 전달하는 권장 방법은 무엇입니까?
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을 가져옵니다 때 , 원래를 얻기 위해 그것을 해독 할 수 있어야한다 정상적인 시스템에서는 "즉시 사용할 수있는"상태로 작동해야합니다.
URL을 인코딩 할 때 escape()를 사용하면 앰퍼샌드가 인코딩되지 않으므로 인코딩되지 않습니다.
'& url ='+ encodeURIComponent (url); 브라우저에서 서버로 URL을 전달하면 URL이 인코딩됩니다.
예, 그렇게해야합니다. encodeURIComponent
은 쿼리 문자열의 일부를 입력하기위한 텍스트 값을 인코딩하는 올바른 방법입니다.
그러나 서버에서 디코딩 될 때 url의 매개 변수는 단일 URL 매개 변수의 일부가 아닌 별도의 매개 변수로 해석됩니다.
그러면 서버가 실제로 깨졌습니다. 그게 실제로 일어나는 경우, 서버 측에서 수정해야합니다.
코드?
솔직히 Google URL Shortener로 이동하십시오. 그런 다음 url 쿼리 문자열의 URL 코드를 사용할 수 있습니다. http://example.com/url/A7dh3
응용 프로그램에서 Google URL Shortener 도메인 이름을 앞에두고 리디렉션을 수행하십시오. 이렇게하면 Google 웹 로그 분석을 통해 URL에 추적 기능이 추가됩니다. 이 접근법에는 많은 장점이 있습니다. 짧은 코드와 추적 데이터가 추가되었습니다.
시도하지 않았지만 BASE64 인코딩/디코딩도 작동해야합니다.
'escape'는'encodeURIComponent'와 비슷하지만'+'문자와 비 ASCII 문자에 대해 잘못된 출력을 생성합니다. 절대 사용해서는 안됩니다. – bobince