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私はその反対を主張するだろう。 1つのHTTPリクエストで操作全体を行うことができるときにURLを取得するためだけに、XMLHTTPRequest全体を実行することは過度の作業です。 – lonesomeday
昨日、私はこれを別に読みました。私は、AJAX POST(jQuery.ajaxを使用)をレスポンスが301永久リダイレクトのURLにするとき、ライブラリは新しい場所へのGETリクエストを実行するという問題がありました。しかし、私のシナリオでは、AJAX経由で新しいURLへのPOSTを行い、通常は現在のページを新しいURLにリダイレクトしてはいけません。これをもう一度読んだら、O.P.は、通常のAJAX POSTを行った後にページをリダイレクトする方法を尋ねているようです。私は混乱してしまいました。 :) – jamiebarrow
まあ、私は前にこの問題に直面していると、これを行うための唯一の方法はそう:あなたができる最善のは、その上にsubmit
を呼び出し、その後、あなたが提出したいデータを新しいform
要素を作成することによって、それをシミュレートしています(たぶん私は間違っている)AJAXの成功コールバック関数を定義し、そのコールバック関数からリダイレクトすることです。必要に応じて、AJAXレスポンスでリダイレクトURL自体を返信し、コールバック関数でリダイレクトURLを読み取ることができます。
- 1. Ajaxを使用したDjango POST
- 2. jQueryを使用したAJAX POSTリクエスト
- 3. PHPを使用したAjax POST形式
- 4. Express JSルートを使用してPOSTをPOSTにリダイレクト
- 5. AJAXを使用してノードサーバーにPOST
- 6. JSまたはAJAXを使用したHTMLフォームPOST
- 7. POSTで成功した後、Ajaxが別のページにリダイレクトする
- 8. POSTパラメータを使用した外部djangoリダイレクト
- 9. jqueryを使用したPOSTコールAJAXが機能しない
- 10. Ajax、React、Railsを使用したPOST 500(内部サーバーエラー)
- 11. JavaScriptとPHPを使用したAJAX POSTのアップロードファイル
- 12. JavascriptとAjaxを使用したJSONフォームPOST [LARAVEL]
- 13. Ajax、jquery、Node.js、Expressを使用したPOSTデータ
- 14. ajaxとphpを使用した場合のユーザー認証とリダイレクト
- 15. POST Jsonオブジェクトajaxスクリプト(Internet Explorer)を使用
- 16. AJAX/XSL:XSLTでのPOSTパラメータの使用
- 17. パラメータを使用してPOST/GETリクエストをリダイレクトするSinatraアプリ
- 18. POST FORM/AJAXを使用してファイルをダウンロードしますか?
- 19. debuggin firebugを使用してPOSTでjQuery ajaxエラーが発生しました
- 20. Spring、POSTを使用して外部URLにリダイレクト
- 21. iptablesを使用したリダイレクト
- 22. この$ .post関数を使用した後、ページにリダイレクトする方法は?
- 23. AJAX POST to ASP.NET APIを使用してPDFファイルを送信
- 24. jQuery datatableでajax POSTメソッドを使用してカスタムオブジェクトを送信
- 25. POSTメソッドでAJAXを使用してサーバーをヒットする方法
- 26. FirebaseでAJAXを使用してPOSTリクエストを行う方法は?
- 27. Ajax Post/blockUI/ajaxformを使用してフォームを送信
- 28. ajax postメソッドを使用してparams hashを作成する
- 29. Ajax POSTを使用してPHPのJSONローカルファイルを保存する
- 30. ajaxコールを使用してサインアップした後、ユーザーをプロフィールページにリダイレクトする方法
パラメータはPOSTリクエストにGETリクエストのように格納されないため、パラメータを別の方法で渡す必要があります。 – Eugene
申し訳ありませんが、明確にするために、現在のページをAJAXのない新しいURLにリダイレクトするかどうか、通常はブラウザでフォームを送信するか、元のAJAX POSTを使用して新しいURLに301恒久リダイレクトレスポンスの場合、別のAJAX POST(GETではなく)? – jamiebarrow