0

私たちは SAML ソリューションを構築しています。ある段階では、さまざまなパラメーターが事前に入力され、POST に設定された、私たちとは独立した Web サービス上のエンドポイントを含む html フォームを提供する必要があります。このフォームは、JavaScript を介して自動的に送信されます。(つまり、これは SAML POST バインディングです)

デバッグの場合、この自動 POST が成功したかどうかを確認できれば、非常に便利です。どうすればそれができるかについて誰かアイデアがありますか? HTTP ステータス コードを取得できたり、リクエストがタイムアウトしたかどうかを確認したりできるだけでも、非常に役立ちます。

現在の進行:

私の知る限り、フォームの送信の実際の結果を直接確認する方法はなく、onunload イベントから次のリクエストのステータスを取得することはできないと思います。

代わりに AJAX で POST を実行するようにこれを再構築する準備はできていますが、他のエンドポイントのドメインに対してこれを機能させることはできないと思います。また、別のページをフレームにロードして何らかの情報を取得できるかどうかも疑問に思っていますが、独自のクロスドメイン制限もあることがわかっています。

最後に、最初にサーバー側で POST を実行して分析することもできますが、ヒットしているサーバーは、クライアントがローカルでのみ利用できるネットワーク上にある可能性が非常に高いため、すべての種類の機能を備えていることに加えて、おそらくそれは実現不可能です。リプレイなどの問題。

どんなアイデアや解決策も非常に役立ちます!

4

2 に答える 2

0

AJAX リクエストの基本的な例を次に示します。

var xmlhttp;
if (window.XMLHttpRequest)
    xmlhttp=new XMLHttpRequest();
else
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

の行に注意してくださいxmlhttp.status == 200。この変数をチェックして、AJAX 呼び出しから返されるステータスを確認できるはずです。したがって、次のようなことができます。

var xmlhttp;
if (window.XMLHttpRequest)
    xmlhttp=new XMLHttpRequest();
else
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
    console.log("STATUS = "+ xmlhttp.status);
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

それはあなたが探しているものですか?

于 2012-08-24T12:36:38.480 に答える
0

テストのために、ブラウザの組み込みのデバッグはどうですか? Chrome では、ヘッダー (ここで説明)を含むすべての Web リクエストを表示できます。Firebug では、同様のものがあります。

テスト中だけでなく、ユーザーから POST の成功ステータスを取得することについて話している場合は、次の場合を除き、ドメイン間の制限が強すぎると思います。

  • サードパーティのサービスは、JSONP でアクセスできるある種の「うまくいった」URL を提供します。
  • サードパーティ サービスは、CORS を使用したクロスサイト AJAX を許可するように構成されています ( MDN docs )
于 2012-08-24T12:52:39.787 に答える