2011-10-13 13 views
5

私はJSONPでフォームを投稿したいと思いますか?JSONPでフォームを投稿

フォームをjsonpとは別のドメインに投稿したいと思います。

+0

は、私たちにいくつかのコードをしてください表示!誰もそのように答えるべきですか? – vzwick

+0

JSONPを使用してのみGETリクエストを送信できます。あなたの迅速な対応のために@vzwickに感謝します。 – andlrc

+0

シナリオは私のサーバー上にフォームがありますが、私はポストフォームを別のサーバーにajax経由で送信したいが、ajaxはこれを許可しないので、jsonpはデータをdiffに送信するのに役立ちます。それはGETメソッドで動作しますが、私はjsonpで動作しないPOSTメソッドを必要とします。何か案が? –

答えて

4

JSONPを使用してクロスオリジンPOSTを作成することはできません。

ただし、次のことができます。

  1. は、クエリ文字列の中にフォームをシリアル化し、GETリクエストでそれを一緒に送ります。
  2. 最新のブラウザのみをターゲットにできるという贅沢がある場合は、CORS(Cross Origin Resource Sharing)を使用してください。

    Javascriptを::

2

A JSONPリクエストは単なる関数呼び出しでスクリプトタグを作成している

var head = document.getElementsByTagName("head")[0]; 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script src = 'url_to_post.serverside?callback=callback_function'; 

var callback_function(response) { 
    head.removeChild(script); 
    alert(response.abc); // returns def; 
}; 

url_to_post.serverside:

callback_function({"abc": "def"}); 

あなたは、なぜそれを見ることを願ってGETリクエストのみで動作します

:)

2

あなたは$ .POST、$に.getのデータオプションにそれを使用することができ、$アヤックス方法:

$('form').serialize()