2011-12-06 2 views
17

나는 대답이 '아니오'가 될 것이라고 확신하지만, 어쨌든 묻기를 원했을 때 뭔가 놓쳤습니다.HTML 앵커 태그와 함께 POST 메서드 사용

모든 사람은 GET 방식을 사용하여 앵커 태그의 페이지에 하나 그 데이터를 전달 알고 :

내가 궁금하면 같은 일을 할 수있는 방법이 있다면,하지만 사용 대신 POST 메서드 ?

그렇게하려는 나의 목적은 보지 않아도되는 내용을 에 넣지 않아 사용자가 깨끗하게 보게되는 URL을 유지하는 것입니다.

이것은 보안상의 우려와는 관련이 없습니다. 이미 알고있는 것처럼 은 전달되는 데이터를 얻는 방법이 될 것입니다.

대답이 참으로 아니오라면 사람들이 데이터를 전달하는 데 어떤 방법을 사용합니까? URL을 깨끗하게 유지하겠습니까? 쿠키? 다른 것?

와 URL의 길이가 허용 GET 요청 길이를 초과하는 경우 시나리오를 처리하는 방법을 모든 요청 매개 변수가 정렬/매김 URL에 추가되어,/displaytag와 매김 정렬 구현하는 동안이 문제에 직면하고있다

이는 GET 요청의 허용 길이 이상입니다.

답변

31

은 당신이 뭔가를 할 수 있습니다 :

<form id="myform" method="post" action="target.html"> 
    <input type="hidden" name="name" value="value" /> 
    <a onclick="document.getElementById('myform').submit();">click here</a> 
</form> 
+0

시도했지만 크롬에서는 항상 GET을 수행합니다. 왜 그런가? –

+6
+0

불행히도'

'이 있으면 레이아웃에 영향을 미칩니다. 완전히 숨겨진 것을 선호 할 것입니다. –

0

onclick 이벤트가 <a> 태그 인 동안 임시 양식을 만들어 제출할 수 있습니다.

1

자바 스크립트를 사용할 수 있습니다. 링크 onclick on do do

길이가 긴 URL을 처리하는 유일한 방법은 대신 POST를 사용하는 것입니다.

4

이 문제는 태그 라이브러리를 표시 할 다릅니다. 그것은 쉽게 북마크 할 수있는 검색 결과를 허용합니다. POST를 사용하기 위해 이것을 변경하려면 링크를 조작하기 위해 디스플레이 태그 라이브러리를 다시 작성하거나 jQuery을 가져와야합니다.

질문의 남은 부분은 어디에도 없습니다. GET (멱등 원 (idempotent) 요청, 북마크 가능 URL, searchbot-crawable URL 등)을 원하면 GET을 사용하십시오. POST (멱등하지 않은 요청, 북마크 할 수없는 URL, 크롤링 할 수없는 URL 등)를 원할 경우 POST를 사용하십시오.

요청이 일 때 서버의 데이터를으로 수정하면 일반적으로 POST가 필수입니다. SQL INSERT, UPDATE, DELETE 등을 생각해보십시오. 이런 종류의 요청을 확실히하지는 못할 것입니다. GET을 수행하는 모든 "행 삭제"링크가있는 표를 상상해보십시오.

관련 문제