質問

フォームを作成し、それを使用して任意のサイトへのPOSTリクエストを実行できます。つまり、FORMメソッドは非同期ではないため、ページの読み込みが完了したことを知る必要があります。私は内部にフォームを持つiframeを使用してこれをいじくり回しましたが、成功しませんでした。

アイデアはありますか

編集

残念ながら、応答データを制御することはできません。XML、json、単純なテキストなどさまざまです。

役に立ちましたか?

解決

onloadiframeイベントをキャプチャできます。 formをiframeに向けて、onloadをリッスンします。ただし、iframeのコンテンツにはアクセスできず、イベントのみにアクセスできます。

次のようなものを試してください:

<iframe id='RS' name='RS' src='about:blank' onload='loaded()'></iframe>

<form action='wherever.php' target='RS' method='POST'>...</form>

スクリプトブロック:

var loadComplete = 0
function loaded() {
    //avoid first onload
    if(loadComplete==0) {
        loadComplete=1
        return()
    }
    alert("form has loaded")
}

他のヒント

クロスドメインリクエストを行う場合は、JSON呼び出しを行うか、サーバーサイドプロキシを使用する必要があります。サーバーサイドプロキシは簡単に設定できますが、なぜ人々がそれほどプロキシを避けるのかはわかりません。ルールを設定して、人々がプロキシを使用して他のものを要求できないようにします。

クロスドメインポストから返されたデータがJSONの場合、データを返すURIを指すスクリプトタグを動的に追加できます。ブラウザはその<!> quot; script <!> quot;をロードします。その後、他のjavascriptからアクセスできます。

YUI3 IO オブジェクトはクロスドメインリクエストを提供しますが、小さなFlashコントロールを使用してページに埋め込みます。

JavaScriptからの安全なクロスドメインリクエストに取り組む作業がありますが、現時点では、リクエストを行うブリッジとしてFlashやSilverlightなどのプラグインを使用する必要があります。

javascriptを使用してクロスドメインでは何もできません。 PHPやASPなどのバックエンド言語を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top