为什么w3schools的JQuery.get示例对我不起作用

Why does this JQuery.get example from w3schools not work for me?

本文关键字:不起作用 get w3schools JQuery 为什么      更新时间:2023-09-26

这对其他人来说是显而易见的,但就我的一生而言,我无法理解。

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

我稍微更改了一行,使.get-url指向完整的w3schools.com url(这在他们的示例页面上很好)。这是代码:

<!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浏览器阻止执行Ajax请求(https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)。基本上,当您在localhost:80上运行脚本时,您只能向localhost:80的页面发出Ajax请求。W3Schools的主机不同。

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