2009-11-20 5 views
0

:에 encodeURIComponent 양식의 행동에 사라 내가 같은 URL을 전달하기 위해 노력하고있어

my_url = 'http://somedomain.com/somepath/somepage?key= "쿼리"';

누군가가 양식을 클릭하면.

encodeURI 및 encodeURIComponent를 사용하고 "query"또는 % 22query % 22이 (가) 호출 되었기 때문에 경고를 사용하여 시도했지만 document.my_form.action = my_url과 같은 호출을하기 때문에 브라우저가 해당 페이지에 도달하면 수 : 이중 인용 부호가 누락

http://somedomain.com/somepath/somepage?key=query

합니다. '=', '@'와 비슷한 시도는 모두 유지됩니다 ... 제가 누락 된 것이 있습니까?

감사합니다.

답변

1

GET 메소드 양식의 조치 속성에서 조회 문자열을 사용하면 양식 자체의 변수로 조회를 겹쳐 쓰게됩니다.

JavaScript를 사용하여 숨겨진 입력 필드로 값을 추가 할 수 있습니다.

나는 코드를 시도하고 나를 위해 잘 작동합니다 :

<?php 
print_r($_GET); 
?> 
<br> 
<form id="testForm" method="post"> 
<input type="submit"> 
</form> 

<script> 

var actionUrl = "http://domain.com/test.php?key=" + '"query"'; 

document.getElementById("testForm").action = actionUrl; 

</script> 

Output: 
Array ([key] => "query") 
+0

는 어떤 입력 값으로 쿼리 문자열을 덮어 쓰게됩니다 브라우저를 형성한다 GET-방법의 경우에, 그래 허용되지만 있어요 형태. POST 문자열의 경우 쿼리 문자열은 변경되지 않지만 모든 서버 측 환경이이 경우에 쿼리 문자열 * 및 *를 읽을 수는 없습니다. – bobince

+0

맞습니다. 저는 GET 방식으로 테스트했습니다. –

+0

제안 해 주셔서 감사합니다 ... 실제로 '게시'를 사용하면 큰 따옴표가 제거되지 않지만 여전히 유효하지 않은 JSON 객체 응답을 받으면서 계속 붙잡혀 있습니다 ... 더 많은 디버깅! –

관련 문제