2

データをサーバーに投稿するためのJavaScriptを作成しました。これは機能しているようですが、iframe でサーバーの応答をキャッチするのに問題があります。他のページに転送したり更新したりせずに iframe またはデータストリームでサーバーの応答をキャッチしたいのですが、ページの転送または更新を停止するだけで解決します。

ボタンとフォーム属性に追加しようとしtarget="my_frame"ましたが、うまくいかないようです。

私のコード、プレゼンテーション用にコードを少し変更しました。

 <html>
  <head>

    <title>post</title>

  </head>
  <body>

<script language="javascript">

   var myDictionary = [];
    myDictionary["username"] = "stackoverflow";
    myDictionary["password"] = "mypassword";


function post(dictionary, url, method) {
    method = method || "post"; 

    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", url);

    for (key in dictionary) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden"); 
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", dictionary[key]);
        form.appendChild(hiddenField); 
    }

    document.body.appendChild(form); 
    form.submit();
}
</script>

<input type="button" target="my_frame" value="Submit" onclick="javascript:post(myDictionary, 'http://www.website.com/register/registernow');" />

    <iframe name="my_frame" src="">

  </body>
</html>

読んでくれてありがとう。

4

1 に答える 1

1

探しているのは Ajax POST です。

フォームを作成して送信する必要はありません。代わりに XMLHttpRequest が必要です。jquery を使用している場合は、$.post または $.ajax を使用できます。

たとえば、http://blog.mgechev.com/2011/07/21/ajax-jquery-beginners/を参照してください。

于 2013-01-17T18:36:31.957 に答える