jQuery - AJAX post() 问题

<!DOCTYPE html>
<html>
<head>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.post("http://www.w3school.com.cn/example/jquery/demo_test_post.asp",
    {
      name:"Donald Duck",
      city:"Duckburg"
    },
    function(data,status){
      alert("数据:" + data + "\n状态:" + status);
    });
  });
});
</script>
</head>
<body>

<button>向页面发送 HTTP POST 请求,并获得返回的结果</button>

</body>
</html>

-------以上代码点击按钮无反应,但是复制到:http://www.w3school.com.cn/tiy/t.asp?f=jquery_ajax_post 在线测试又可以,什么原因呢?请高手指点!!
!
图片说明

控制器设置 允许外部资源访问
response.setHeader("Access-Control-Allow-Origin", "*");

你保存到本地执行ajax跨域报错了,在线测试同于当然没用问题

你这个没有处理跨域呀,自己搭建一个服务端测试吧。要不就一直在线测试

F12控制台看看有没有提示

浏览器跨域限制,原因你可以查一下为什么

解决办法:

  1. jsonp处理,需要提供接口方提供跨域支持,你可以看看jquery就有jsonp的请求方法。
  2. cors跨域处理,需要提供接口方提供跨域支持,你可以正常post请求,只是后台添加请求头

    其实跨域处理就是为了避免接口被其他网页调用引起的安全问题。
    还有一些其他的解决办法,如果你会写简单的后台,你可以用后台做代理请求数据,也能绕开浏览器的跨域限制

这是我拷贝你的代码出现的问题
所用的 getPreventDefault() 已不赞成使用。请改用 defaultPrevented。
jquery-1.8.2.min.js:3260:28
已拦截跨源请求:同源策略禁止读取位于 http://www.w3school.com.cn/example/jquery/demo_test_post.asp 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

把这个资源 http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js 下载到本地才行。