2016-04-06 10 views
0

私は、マイクロコントローラからXMLHttpRequestでデータ文字列を取得しようとしています。 リクエストはInternet Explorer、Firefox、Chrome、Operaで動作し、ブラウザKonsoleでエラーは発生しません。 Safariのみが「リソースを読み込めませんでした:ネットワーク接続が失われました」というエラーで問題が発生します。 マイクロコントローラはデータスティング(5バイト)でのみ応答します。XMLHttpRequest "リソースをロードできませんでした" Safariで

function httpGetFreq(){ 
    var xmlHttp = new XMLHttpRequest(); 
    xmlHttp.onreadystatechange = function() { 
     if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ 
      freq = parseFloat(xmlHttp.responseText)/1000; 
      animate(); 
     } 
    } 
    xmlHttp.overrideMimeType('text/plain'); 
    xmlHttp.open("GET", "frequenz", true); 
    xmlHttp.send(null); 
} 
+0

[ネットワーク]タブに記載されている情報はありますか? – epascarello

+0

ネットワークタブには次のような要求があります。タイプ:XHR;メソッド:GET;スキーム:HTTP;状態: -;キャッシュされた:いいえ。サイズ: - ;転送: - ;開始タイマー:0.443ms;待ち時間: - ;期間 - –

答えて

0

は、リソースの読み込みに失敗しました:ネットワーク接続が失われた」以下の理由の一つになるかもしれません。

  1. XHRは、このケースでのContent-Length>実際のコンテンツの長さ のSafariでページを要求:タイムアウト、エラーイベントまで待機は、「リソースの読み込みに失敗しました:ネットワーク接続が失われました。」コンソール内

  2. XHRはContent-Length>実際のコンテンツの長さが突然のサーバー終了で終わるページを要求します Safari:エラーイベント "リソースの読み込みに失敗しました:ネットワーク接続が失われました。コンソール

にそう最も可能性の高い理由は、コンテンツの長さの不一致であるかもしれない、コンテンツの長さが受け取った場合、ワイヤサメにチェックされて送信さは同じであるか、任意のパケットが

0

が欠落している場合に1つの以上の可能性があるかもしれませんしてくださいこれが起こる。 Safari以外のブラウザは、応答の種類を無視します。たとえば、HTTP要求を行い、応答がTCPパケットの場合などです。この場合、Safariはそれを破棄しますが、Chromeのような他のブラウザはHTTPレスポンスと見なします。

したがって、応答にHTTPヘッダーがあるかどうかHTTPサーバーコードをチェックインします。私の見解では、これが最も可能性の高い理由でなければなりません。応答パケットの種類がHTTPかTCPかをWiresharkにチェックインします。

関連する問題