<!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控制台看看有没有提示
浏览器跨域限制,原因你可以查一下为什么
解决办法:
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 下载到本地才行。