使用ajax javascript访问不同域上的Web服务

时间:2016-10-21 16:03:38

标签: javascript ajax web-services

我是一名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服务示例,我将不胜感激,因此我可以测试我的代码。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试在浏览器中加载网页。目标网站必须决定是否允许您的CORS。

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

你可以测试对给定目标的请求,看看哪个允许它,哪个不允许。无论如何,如果某个站点不允许使用CORS,那么您将无法跨域访问它。