JavaScriptを介した非同期クロスドメインPOSTリクエスト?
-
19-08-2019 - |
質問
フォームを作成し、それを使用して任意のサイトへのPOSTリクエストを実行できます。つまり、FORMメソッドは非同期ではないため、ページの読み込みが完了したことを知る必要があります。私は内部にフォームを持つiframeを使用してこれをいじくり回しましたが、成功しませんでした。
アイデアはありますか
編集
残念ながら、応答データを制御することはできません。XML、json、単純なテキストなどさまざまです。
解決
onload
のiframe
イベントをキャプチャできます。 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からアクセスできます。
javascriptを使用してクロスドメインでは何もできません。 PHPやASPなどのバックエンド言語を使用する必要があります。
所属していません StackOverflow