2016-10-19 8 views
0

私はAJAXを使用してLAN上のhttpサーバーからURLを取得しようとしています。同じURLはFirefox上でうまくロードされますが、下のコードからGETを実行すると失敗します。LANサーバー上のページのGETがajaxで失敗する

私はこれを理解してください。コードは次のとおりです。

<head> 
    <title>Display_page</title> 
    <script src="jquery-3.1.1.min.js"></script> 
    </head> 
    <body style="background-color: black"> 

    <div id="logs" style="width: 100%;height: 100%; background-color: black;position: absolute;color:white;padding:50px;"></div> 

    <script> 
    for(var i = 0;i<3;i++){ 
    $.ajax({ 
     url:'http://10.102.132.42/lan.asp', 
     method:"GET", 
     async:true, 
     error:function(){ 

      $("#logs").html("Failure</br>"+$("#logs").html()); 
     }, 
     success:function(){ 
      $("#logs").html("Success</br>"+$("#logs").html()); 
     } 

    }); 
} 

    </script> 
    </body> 

P.S.サーバーがHTTP 200 OK応答を返すことを確認しました。上記のコードを試してから、私はstatusCodeを使って200のレスポンスを処理しようとしましたが、そこには何も載っていません。本当にここで失われた。

答えて

2

クロスドメインコールを作成しようとしています。そのためには、crossDomainをtrueに設定する必要があります。

$.ajax({ 
    url:'http://10.102.132.42/lan.asp', 
    method:"GET", 
    crossDomain: true, 
    error:function(){ 
     $("#logs").html("Failure</br>"+$("#logs").html()); 
    }, 
    success:function(){ 
     $("#logs").html("Success</br>"+$("#logs").html()); 
    } 

}); 

これは、サーバー側でも有効にする必要があることに注意してください。詳細は以下を参照してください:https://d-mueller.de/blog/cross-domain-ajax-guide/

+0

これは本当にばかな質問かもしれませんが、これはどのようにクロスドメインコールですか?サーバーは同じLAN、同じIPアドレスシリーズにあります。私はあなたの提案された変更を試し、役立つかどうかを見ていきます。 –

+0

この場合のドメインは、Webアプリケーションレベルで定義されています(iIPなどではありません)。あるアプリケーションから別のアプリケーションに呼び出しています。たとえば、ポート44101からポート44102へローカルホストで作業している場合、これはすでに問題になる可能性があります。 – Awwlie

関連する問題