我是一名JavaScript初学者,刚刚介绍了Web服务,单页网站和AJAX的概念。在我得到的任务中,其中一个问题是在不同的域上访问Web服务(使用AJAX js)。在作业中有一个附注说明了一些名为" CORS"这使浏览器能够使用原始标头访问外部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的:
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);
代码只是打印&#34; OK&#34;如果访问Web服务成功并且&#34;错误&#34;如果不是。 您在此处看到的Web服务是我用于分配的示例。它甚至允许&#34; localhost&#34;域名来访问它,这就是我正在做的事情(Windows操作系统和WAMPSERVER)。 目前,我只得到&#34;错误&#34;印在我的div。我不确定我的代码是否错误,或者Web服务根本不起作用。 如果需要改进,我想就你的代码提出建议。如果Web服务是问题所在,如果您能为我提供一个有效的Web服务示例,我将不胜感激,因此我可以测试我的代码。 提前谢谢。
答案 0 :(得分:0)
尝试在浏览器中加载网页。目标网站必须决定是否允许您的CORS。
你可以测试对给定目标的请求,看看哪个允许它,哪个不允许。无论如何,如果某个站点不允许使用CORS,那么您将无法跨域访问它。