1.ajax默认是本域使用的
在这里跨域:http://www.lizixian.cn:6666
请求协议、一级域名、二级域名、顶级域名、端口;有一个不一样就认为是跨域。
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<head>
<title>验证</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="description" content="This is my page">
<!--引入jquery库-->
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript">
jump();
function jump(){
var xhrurl = "http://192.168.1.110/test.do";
$.ajax({
type : "get",
async : false,
url :xhrurl,
cache : false,
dataType : "jsonp",
jsonp: "callbackparam",
jsonpCallback:"jsonpCallbackMe",
success : function(json){
alert("跨域测试成功");
},
error:function(e){
alert("跨域测试失败");
},
});
};
</script>
</head>
<body>
<h3 id= "test" align="center">正在努力跨域测试···</h3>
</body>
</html>
2.服务端响应头添加两句代码
response.addHeader("Access-Control-Allow-Origin", "*");// 允许跨域
response.addHeader("Access-Control-Allow-Methods", "POST,GET"); // 允许的请求类型
3.响应数据应改为jsonp格式,而且在服务器上也要稍微改动下响应数据的格式:
原本的json格式的数据:String outString = "{"Result":”1"}";
转成jsonp格式的数据:String outString = "jsonpCallbackMe({"Result":”1"})";这里的jsonpCallbackMe就是上面ajax请求里的jsonpCallback