跨域:当前URL的协议、域名、端口号中的任意一个与请求的URL不同即为跨域。
方法1,ajax jsonp
<body>
<button id="query" onclick="query()" type="button">查询</button>
</body>
<script type="text/javascript">
function query(){
$.ajax({
url: "http://localhost:8082/selectUser",//访问的url
data: {a:12312312},//传递的参数
type:"get",//post,或者get都行
dataType: "jsonp", //返回类型
jsonp:"callback",//传递到controller的参数名--回调方法callback=xxx
jsonpCallback: "jsonhandle",//传递到controller的参数名的值--xxx=jsonhandle
success: function(result){
console.log(result)
},
error:function(){
console.log("查询出现错误。");
}
});
}
function jsonhandle(data){//回调方法具体
alert(data);
}
</script>
controller
@Controller
public class CorController {
@RequestMapping(value="/selectUser")
@ResponseBody
public String queryUser(String callback) {
// return "jsonhandle("+998+")";//都行。
System.out.println(callback);//jsonhandle
return callback+"("+998+")";
}
}
方法2,@CrossOrigin
ajax
<script type="text/javascript">
function query(){
$.ajax({
url: "http://localhost:8082/selectUser",//访问的url
dataType: "json", //返回类型
type:"get",
success: function(result){
console.log(result)
}
});
}
</script>
controller
@Controller
public class CroController {
@RequestMapping(value="/selectUser")
@ResponseBody
@CrossOrigin//跨域注解,可以作用在方法上,也可在类上。
public String queryUser() {
return "998";
}
}
其他方法没试g...