이 질문은 두 가지 개념을 결합하기 때문에 약간 까다 롭습니다. 첫 번째는 POSTing이고 두 번째는 Ajax입니다. 게시는 GETting과 비교하여 구현 및 의미가 다른 다른 HTTP 메소드입니다. Ajax 또는 XmlHttpRequest는 정상적인 요청/탐색에 해당합니다. XmlHttpRequest와 일반 탐색 및 양식 제출 모두에 POST 또는 GET을 사용할 수 있습니다 (POST는 항상 "양식 제출"입니다). XmlHttpRequest와 일반 요청의 차이점은 일반 요청이 페이지를 새 페이지로 바꿉니다.
데이터를 가져 와서 DOM을 변경하기 위해 Ajax만을 사용하는 웹 사이트를 작성할 수 있습니다. 이것이 주로 Gmail의 작동 방식입니다. 전통적인 의미에서 "양식 제출"이 없습니다. 그러나 서버와 브라우저가 결과를 다르게 해석하기 때문에 GET과 POST가 여전히 존재합니다. GET은 멱등수 (idempotent)로되어있다. POST는 서버의 상태를 변경하는 조작을 의미합니다. 예를 들어, ecom 트랜잭션은 POST 여야합니다. 프록시 서버가 POST임을 이해하고 응답을 캐시하려고 시도해서는 안되기 때문에 Ajax를 사용할 때는 변경되지 않습니다.
또한 GET 대 POST를 사용할 때 장단점이 있습니다. 매개 변수가 숨겨져 있기 때문에 POST 결과를 북마크 할 수 없습니다. IE는 약 2000자를 지원하기 때문에 무제한 길이의 매개 변수 값을 가진 무언가를 얻을 수 없습니다.
또한 Ajax와 정상적인 제출을 사용할 때 단점이 있습니다. 결과 페이지를 북마크 할 수 없습니다 (페이지가 변경되지 않았기 때문에). 뒤로 단추가 예상대로 작동하지 않습니다. 그러나 Ajax를 사용하면 전송 된 데이터를 최소화 할 수 있으며 깜박 거리거나 새로 고치는 일없이 페이지에 편리한 업데이트 (긴 프로세스의 상태 모니터링 등)를 제공 할 수 있습니다.
요약하면 두 가지 요청 유형 인 Ajax와 전통적인 양식 제출은 모두 GET 및 POST와 함께 사용할 수 있으며 각각에 대해 장단점이 있습니다. 두 가지 유형 모두 상대방이 할 수있는 모든 것을 할 수 없으므로 가까운 미래에 믹스를 볼 수 있습니다.
나는 그것에 대해 생각하지 않았다. 좋은 지적이다. – kemiller2002
jQuery는 Ajax 요청 내에서 파일 업로드를 감지하면 iframe 및 iframe의 양식과 POST 양식을 자동으로 내부적으로 작성합니다. –
그럼에도 불구하고 그것은 여전히 POST입니다. 이것이 제가 지적했습니다. – Welbog