양식을 통해 HTML에서 포스트 매개 변수를 전달하는 유일한 방법입니까?
문제
HTML에서는 몇 가지 방법으로 GET 요청을 사용하여 한 페이지에서 다른 페이지로 데이터를 보낼 수 있습니다.
http://www.example.com/somepage.php?data=1
...또는...
<form action="somepage.php" method="get">
<input type="hidden" name="data" value="1" />
<input type="submit" value="Submit">
</form>
그러나 게시물 요청을 사용하면 다음과 같은 양식 요소를 통해 데이터가 전송되는 것을 보았습니다.
<form action="somepage.php" method="post">
<input type="hidden" name="data" value="1" />
<input type="submit" value="Submit">
</form>
게시물을 사용하여 다른 페이지로 보내고 싶은 매개 변수가 하나만 있으면 양식으로 래핑하는 것보다 쉬운 방법이 있습니까?
해결책
브라우저에서 게시하는 방법에는 두 가지가 있습니다 - 양식 또는 Ajax 요구.
다른 팁
HTML 만 사용하면 양식이 게시물 요청을 생성하는 유일한 방법입니다. 서버 측 스크립팅 / 자바 스크립트를 사용하여 다른 방식으로 게시물 요청을 생성 할 수 있지만 일반 HTML과 관련하여 다른 방법은 없습니다.
이미 발견 한 것처럼 HTTP 프로토콜을 통해 데이터를 전송하는 두 가지 방법이 있습니다. GET
또는 POST
. HTTP 메시지의 세 번째 유형도 있습니다. HEAD
, 그러나 그것은 실제로 자원을 다운로드하지 않고 자원 주위의 메타 데이터를 얻는 데 사용되며 널리 구현되지는 않습니다.
분명히 둘 다 GET
그리고 POST
a를 사용하여 쉽게 액세스 할 수 있습니다 <form>
꼬리표. 그만큼 GET
이름 값 쌍의 형태로 URL에 쿼리 매개 변수를 수동으로 추가하여 쉽게 액세스 할 수 있습니다.foo.html?a=1&b=2
).
의 아름다움과 복잡성 POST
, 그러나 이름-값 쌍은 브라우저에서 쉽게 액세스 할 수없는 HTTP 요청 헤더 내에서 동봉 된 웹 서버로 통신합니다. 달성하는 유일한 방법 POST
사용하지 않고 <form>
태그는 HTTP 요청 헤더를 수동으로 변경하고 자신에게 이름 값 쌍을 추가하는 것입니다.
또한 HTTP 서버는 본질적으로 요청 여부를 알지 못합니다 (GET
또는 POST
)는 기본 브라우저 창 또는 Ajax 호출에서 나왔습니다. 그럼에도 불구하고 웹 서버는 요청을 읽고, GET
또는 POST
요청하고 이름 값 쌍을 적절하게 찾아 응답을 생성하십시오.
올바르게 포맷하는 방법에 대한 추가 세부 사항을 원하시면 POST
갈 수 있습니다 jmarshall.com/easy/http/ 아니면 아마도 tcpipguide.com/free/t_httprequestmessageformat.htm. 결정적인 자원은 항상입니다 W3C, 그러나 때로는 RFC가 우리에게 필사자가 읽을 수 있도록 끔찍하게 혼란 스러울 수 있습니다.
HTML에서만 양식이 있습니다.
그러나 서버 측에서 플레이하면 할 수 있습니다. 다음은 조작하는 방법을 보여주는 좋은 기사입니다. 게시하도록 변경하십시오 PHP를 통해. 이를 위해서는 FSockoPen을 사용해야합니다. 일단 설정하면 일반화 할 수 있지만 작동하면 모든 것을 먼저 설정하는 것이 약간의 작업입니다.
물론 항상 서버 측 (또는 ajax) 로직이 포함 된 페이지로 이동하여 게시물 요청을 생성 할 수 있습니다 (예 : get /page whichecreatesapost.py). 물론 매우 지저분하지만 그러한 작업이 유용 할 수있는 경우가있을 수 있습니다.