그는 성공적인 Ajax 호출 후 다른 페이지로 리디렉션하는 방법에 대한 많은 해답을 보았지만 모두 GET 메서드를 사용합니다. 대신 POST 메서드를 사용하여 새 페이지에 매개 변수를 전달하고 싶습니다. 어떻게 할 수 있습니까?POST를 사용하여 Ajax 리디렉션
답변
POST 요청을 수행하도록 브라우저를 프로그래밍 방식으로 설정할 수는 없으며 XMLHTTPRequest
코드 만 사용할 수 있습니다.
var params = {name: 'lonesomeday', website: 'stackoverflow'};
var form = document.createElement('form');
form.action = 'http://example.com';
form.method = 'post';
for (var key in params) {
if (params.hasOwnProperty(key) {
var field = document.createElement('input');
field.type = 'hidden';
field.name = key;
field.value = params[key]
form.appendChild(field);
}
}
document.body.appendChild(form);
form.submit();
당신은 XMLHttpRequest를 사용하여 POST 요청 메소드로 요청을 보낼 수 있습니다 ... 제출을 할 새로운 양식을 만드는 것이 과잉이라고 생각하십니까? – jamiebarrow
@ jamiebarrow 나는 그 반대라고 주장 할 것이다. 하나의 HTTP 요청으로 전체 작업을 수행 할 수있을 때 URL을 가져 오기 위해 XMLHTTPRequest 전체를 수행하는 것은 과도한 작업입니다. – lonesomeday
음, 어제 나는 이것을 다르게 읽었다. AJAX POST (jQuery.ajax 사용)를 사용하여 응답이 301 영구 리디렉션 인 URL에 문제가 발생하면 라이브러리는 새 위치에 GET 요청을 수행합니다. 그러나 내 시나리오에서는 AJAX를 통해 새 URL로 POST를 수행하고 현재 페이지를 정상적으로 새 URL로 리디렉션하지 않아야합니다. 이것을 다시 읽은 후, O.P.가 정상적인 AJAX POST를 수행 한 후 페이지를 리디렉션하는 방법을 묻는 것 같습니다. 혼란 스러웠습니다 :) 다른 사람들도 혼란스럽게한다면 미안 해요! :) – jamiebarrow
그럼 내가 전에이 문제를 직면하고이 작업을 수행 할 수있는 유일한 방법은 같다 : 당신이 할 수있는 최선은, 당신이 제출하려는 데이터를 새로운 form
요소를 생성 그것에 submit
를 호출하여 시뮬레이션입니다 (어쩌면 내가 잘못) AJAX 성공 콜백 함수를 정의하고 해당 콜백 함수에서 리디렉션 될 수 있습니다. 원하는 경우 AJAX 응답에서 리디렉션 URL 자체를 되돌려 보내고 콜백 함수에서 리디렉션 URL을 읽을 수 있습니다.
- 1. 레일에서 POST를 사용하여 redirect_to
- 2. AJAX 요청을 사용하여 리디렉션 URL을 얻는 방법?
- 3. jQuery AJAX $ .post를 사용하여 PHP $ _SESSION 변수를 저장하는 방법?
- 4. jQuery AJAX 트램펄린 리디렉션
- 5. Ajax 호출 내로 리디렉션
- 6. Ajax 양식에서 리디렉션
- 7. jQuery AJAX 리디렉션 문제
- 8. ajax 리디렉션 문제
- 9. DotNetNuke/.NET Ajax 리디렉션 문제
- 10. NSURLConnection을 사용하여 POST를 보내는 iPhone
- 11. jQuery의 $ .post를 사용하여 로그인 하시겠습니까?
- 12. $ .post를 사용하여 JSON 데이터 보내기
- 13. jQuery는 .post를 사용하여 유효성을 검사합니다.
- 14. WSGIREF를 사용하여 POST를 잡는 방법
- 15. AJAX를 사용하여 브라우저 리디렉션
- 16. ajax 호출에서 기본 창 리디렉션
- 17. AJAX Post를 사용하여 ASP.NET MVC 컨트롤러 작업을 호출하고 새보기를 반환하는 방법?
- 18. POST를 통해 데이터를 전송 한 다음 동일한 페이지로 리디렉션
- 19. ajax 호출에서 php header() 명령을 사용하여 리디렉션 할 수 있습니까?
- 20. POST를 통한 jQuery 캐싱
- 21. POST를 사용하는 jQuery AJAX 호출은 $ _GET으로 만 검색됩니까?
- 22. AJAX 호출을 기반으로 새 페이지로 리디렉션
- 23. .NET 웹 서비스에 jQuery ajax POST를 디버깅하는 방법
- 24. 자주 만료되는 AJAX 콘텐츠를 가져 오기 위해 Post를 사용해야합니까,해야합니까?
- 25. JQuery Ajax Post를 호출하는 방법 쿼리 문자열 URL
- 26. FORM POST를 사용하여 SharePoint에 파일 업로드
- 27. POST를 사용하여 JS에서 전화를 걸 수 있습니다.
- 28. POST를 사용하여 서버에서 무언가를 삭제하려면 어떻게합니까?
- 29. $ .post를 사용하여 MVC 컨트롤러에 객체 컬렉션 전달
- 30. 로드 페이지 (ASP.NET)에서 Method = POST를 사용하여
매개 변수는 GET 요청과 마찬가지로 POST 요청에 저장되지 않으므로 매개 변수를 다른 방식으로 전달해야합니다. – Eugene
죄송합니다. 명확히하기 위해 브라우저와 함께 정상적으로 양식을 제출하는 것처럼 현재 페이지를 AJAX가없는 새 URL로 리디렉션 하시겠습니까? 아니면 원래 AJAX POST가 이제는 새로운 URL로 연결되기를 원하십니까? 301 AJAX POST (GET 대신) 301 리디렉션 응답의 경우? – jamiebarrow