2017-08-11 9 views
1

POSTメソッドを使用してデータを送信し、本文をキーと値のペアのセットではなくJSONオブジェクトにして、成功した場合はレスポンスに移動します。JSON本体のデータをPOSTとして送信し、その応答にナビゲートするにはどうすればよいですか?

私はちょうどPOSTでデータを送信し、応答に移動したいと思ったら、私はフォームを使用します。 POSTでJSONを送信したいだけなら、AJAXを使用できます。しかし、両方の基準に適合する方法はありますか?

+0

ブラウザのコンテンツが返されたJSONに置き換えられたという応答に移動しますか? –

+0

jQueryを使用して、JSONを '$ .ajax'経由でサーバーにポストできます。成功すると、window.location =" somewhere "を設定してレスポンスを読み込むことができます。 –

答えて

4

URLを変更し、応答をDOM全体を交換する

  • 使用history.pushState:あなたが持っている最も近いオプションは、Ajaxとを使用することです。

  • サーバーが結果をどこかに格納してから、JavaScriptがlocation.hrefに割り当てることができるレスポンスにURLを返します。 URLには、ブラウザが保存された応答を取得するために使用できるトークンがあります。

+0

Heh、偉大な心、〜18秒で区切られています。 –

+0

IE9はこの場合に失敗し、history.pushStateはサポートされません。 –

+1

@AhmetCanGüven:真。また、世界市場シェアの1.1%を誇る旧式のブラウザ(http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2&qpcustomd=0)であり、OSをアップグレードしないアップグレードパスはIE11のように少なくとも半分の近代的な現代。 –

0

私はあなたが説明してきた何文字通りにどのような方法はないと思います。

同じオリジン(またはCORSが有効)のURLに投稿する場合は、XMLHttpRequestで投稿を行い、history.pushStateを使用してブラウザのURLをターゲットに変更し、レスポンスでページのDOMを更新しますポストから。

しかし、文字通り自分が書いたことをフォームで行い、フォームは現在JSONを送信できません。

関連する問題