2016-10-21 5 views
-1

私はJavaScriptの初心者ですが、Webサービス、1ページのサイト、AJAXの概念に導入されました。私が得た課題では、問題の1つは、別のドメインでWebサービス(AJAX jsを使用)にアクセスすることです。代入には、ブラウザが原点ヘッダーを使用して外国のWebサービスにアクセスできるようにする、「CORS」と呼ばれるものが説明されています。原点ヘッダーの値を設定することは、私が正しく理解していれば、ユーザーによって制御されていません。 だから、私は、次のコードを書いた:ajax javascriptを使用して異なるドメインのWebサービスにアクセスする

HTML:

<html> 
    <INPUT TYPE = "button" id = "button" VALUE = "Access web service"><br> 
    <div id = "message"></div> 
    <script src = "zaz2.js" type = "text/javascript"></script> 
</html> 

のJavaScript:Webサービスへのアクセスが成功した場合と、 "エラー" だった場合

function check() 
{ 
    var ajax = new XMLHttpRequest(); 
    ajax.onreadystatechange = function() 
    { 
    if(ajax.readyState == 4 && ajax.status == 200) 
    { 
     document.getElementById("message").innerHTML="OK."; 
     document.getElementById("message").style.backgroundColor="green"; 
    } 
    else document.getElementById("message").innerHTML = "Error"; 
    } 
    ajax.open("GET", "http://zamger.etf.unsa.ba/provjeriGrad.php", true); 
    ajax.send(); 
} 
var button = document.getElementById("button"); 
button.addEventListener("click" , check); 

のコードでは、単に "OK" 印刷しますそうではありませんでした。 ここに表示されているWebサービスは、割り当てに使用する例です。それは私がやっていることである "localhost"ドメイン(Windows OSとWAMPSERVER)にもアクセスできるようにします。 現在、私は自分のdivに "Error"という文字を表示しています。私のコードが間違っているか、Webサービスが単に機能しないかどうかはわかりません。 改善が必要な場合は、自分のコードに関するアドバイスをしたいと思います。 Webサービスが問題であれば、私はあなたのコードをテストすることができるように、私に実用的なWebサービスのサンプルを提供できるのであれば、感謝します。 ありがとうございます。

+0

「エラー」の代わりにエラーメッセージを表示するようにコードを変更してください。それはより多くの情報を提供します。 – TheValyreanGroup

+0

@TheValyreanGroup ajax.responseTextを意味しますか?しかし、何も表示されませんが、コンソールには次のようなメッセージが表示されます: "要求されたリソースには 'Access-Control-Allow-Origin'ヘッダーが存在しません。 'http:// localhost'はアクセスできません。 – Aoken

+0

つまり、サーバーはCORSを許可していません。あるドメインから別のドメインに要求を行うには、サーバーはそのドメインで許可されているドメインを指定して応答する必要があります。 – TheValyreanGroup

答えて

0

ブラウザのURLのページを読み込みます。あなたのCORSを許可するかどうかを決定する必要があるのは、ターゲットとなるWebサイトです。ここで

http://www.test-cors.org/

あなたが与えられたターゲットへの要求をテストしているを見ることができるが、それを可能にしていません。とにかく、サイトでCORSを許可しないと、クロスドメインにアクセスできなくなります。

関連する問題