0

JSONP を使用して、サーバー B からのページのフォーム送信時にデータをサーバー A にプッシュしようとしています。

これが私のJSです-

my.submitOrder = function () {

    var scriptTag = document.createElement('SCRIPT');
    scriptTag.src = ServerAUrl + "?" + urlData;
    scriptTag.type = "text/javascript";
    scriptTag.async = 0;

    document.getElementsByTagName('HEAD')[0].appendChild(scriptTag);

};

ユーザーがフォームを送信したときにこのjsを実行したいので、これが仕事を成し遂げると思ったHTMLです-

<form action="http://localhost:3348" onsubmit="return my.submitOrder();" >
    <input type="submit" value="submit"  />
</form>

送信は正常に行われ、submitOrder 関数は実行されますが、ServerAUrl への呼び出しはサーバー A に到達する前に (firebug によると) 「キャンセル」されます。それにパターン。Google アナリティクスが行っているので、このようなことが可能であることはわかっています。何か案は?

4

1 に答える 1

1

submit イベントを防止しなかったため、フォームは通常どおりターゲット ページをロードして送信されます。アンロードの過程で、オープン リクエスト (JSONP スクリプトなど) はキャンセルされます。

イベントのデフォルト アクションを防ぐには、そのpreventDefaultメソッドを呼び出します (特に、高度なイベント登録を使用する場合、またはreturn falseインライン ハンドラーからのみ行う場合)。現在、undefined.

于 2012-12-13T01:23:35.610 に答える