2013-08-24 17 views
7

私は一般的にjavascriptやWeb開発に慣れていません。私が取り組んでいるプロジェクトは、一般的な企業トレーニングプログラムの一部です。私たちは、主要なテストブラウザとしてGoogle Chromeを使用するよう指示されています。Javascript XMLHttpRequest "NetworkError"

本質的に、私は社内イントラネットの外部のクライアントで動作するアプリケーションを作成しています。接続は、シングルサインオンサーバーを介して内部サービスに渡されます。シングルサインオンサービスは、ほとんどがサーバーサイドアプリケーションに対して透過的です。内部サービスへの要求を傍受し、必要に応じて資格情報の入力を促します。私が知ることから、リクエストが送信されるたびにセッションCookieが変更されます。

私はHTTP GETおよびPOST接続を使用してサービスへの接続を確立しました。ただし、HTTP PUT要求を必要とするサービスが1つあります。 。トラブルが入って来ている場合

をスクリプトを実行するとこれは、JavaScriptコンソールChromeは次のエラーを与える:

Uncaught NetworkError: A network error occurred. 

エラーはとても曖昧です。 Chromeデベロッパータブの[ネットワーク]タブを見ると、リクエストが表示されますが、応答データはありません。

好奇心のために、私はリクエストを右クリックし、それをcURLリクエストとしてコピーしました。私はセッションクッキーを-bフラグを介してリクエストに追加しました。 cURLはHTTP 302を返し、サーバー上にcookieスクリプトを作成します。 PUTリクエストでは、リダイレクトは要求を失敗させませんか?しかし、私はこれがChrome/jsで起こっていることを肯定的ではありません。

エラーの詳細を表示する方法はありますか?

私たちが内部サービスを開発したチームでは100%自信がないので、PUTリクエストの使用は本当に不可能かもしれません...サービスもまだ開発中です。

明らかに、可能な場合、私たちのSSOアプリケーションを通過するためには、このPUTリクエストが必要です。

答えて

10

同じ問題が発生しました。それはリダイレクト応答でのみ発生するようです。非同期フラグをfalseに設定してコールバック関数を使用すると、エラーはなくなります。

xmlhttp.open("GET","http://google.com", false); 

次にあなたが応答を待機するために、このような機能が必要になります:たとえば

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
    // do stuff here 
    } 
} 
関連する問題