2016-11-19 12 views
0

私はここに、JavaScriptをHTTP.Get要求を使用するために、問題を持つ だが、私のコードは非同期JavaScriptがリクエストを返さない理由

function getData(url, callback) { 
     var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       callback(this.responseText); 
      } 
     }; 

     xhttp.open("GET", url, true); 
     xhttp.send(); 
    } 
} 

ですなぜ私は

getData("http://www.example.com/data.php", function(data) {    
    console.log(data); 
}); 

それを呼び出しても応答は、あなたは私を助けていないしてくださいことはできますか?どんなヒントも非常に役に立ちます

+0

ステータスコードが200と異なるレスポンスが返されている可能性があります。この場合、 'callback'は(' if'条件がfalseであるため)呼び出されません。ブラウザのデベロッパーコンソールの[ネットワーク]タブでこれが当てはまるかどうかを確認できます。 – Frxstrem

+0

と思うと、それはCORSの問題になります –

+0

@Frxstremそれはステータスが200です – lloistborn

答えて

0

ブラウザがクロスドメインコールを妨げたためです。

"XMLHttpRequestはhttp://www.example.com/data.phpをロードできません。要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません。

要求するヘッダーを追加することは、サーバーまたはサイトがこのヘッダーを尊重するまで機能しません。

ドメインでサービスを作成/ホストしないでください。サーバー側でHttpRequestをexample.com/data.phpにして、必要な応答を提供します。

あなたのページ>あなたのサービスにajaxコールを呼び出す> httpを取得してdata.phpを呼び出します。

+0

はい、それは答えになるはずです、私はそれを知らなかった。私に答えた人は決して私に言わない。 – lloistborn

関連する問題