这对其他人来说将是显而易见的,但是对于我的一生,我无法弄清楚。

我已经从http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_ajax_get复制了HTML

我稍稍更改了一行,以便.get网址指向完整的w3schools.com网址(这在他们的示例页面上效果很好)。这是代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.get("http://www.w3schools.com/jquery/demo_test.asp",function(data,status){
      alert("Data: " + data + "\nStatus: " + status);
    });
  });
});
</script>
</head>
<body>

<button>Send an HTTP GET request to a page and get the result back</button>

</body>
</html>


该代码在w3schools网站上对我来说很好用,但是当我将其粘贴到家用计算机上名为“ hi.html”的新文件中并在Chrome和Firefox中打开时,它将失败。

我直接复制并粘贴此html,为什么会失败?

最佳答案

您的Web浏览器由于同源策略(https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)而阻止了Ajax请求的执行。基本上,当您在localhost:80上运行脚本时,只能向localhost:80上的页面发出Ajax请求。 W3Schools在其他主机上。

出于安全原因,存在同源策略。例如,假设您已登录Facebook。如果不存在相同来源的策略,则程序员可能会创建一个恶意网站,该网站向Facebook.com发出Ajax请求,并且该网站将返回您的登录cookie。然后,它可以将您的登录cookie发送给恶意程序员。然后,恶意程序员可能会获取您的登录Cookie并在Facebook上冒充您。

关于javascript - 为什么w3schools的JQuery.get示例对我不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25696941/

10-12 22:23