跨域请求的概念不在多说。主要看代码实现
需要注意的是jsonp只支持get请求。
还有使用jsonp跨域请求,后端也是必须要有相应的改变,返回callback函数
前端代码
<body>
<input type="button" value="跨域GET" id="aaa">
<script type="text/javascript">
$(function(){
$("#aaa").on('click',function(e){
$.ajax({
url : "http://dhjdhkahdahdkaa/wx_public/api/getUserByName2/徐长城",
dataType : 'jsonp',
type : 'get',
jsonp: "callback",
jsonpCallback:"callback2",
success : function(response) {
console.log(response.msg)
alert(response.msg)
},
errorfun : function() {
alert("error")
}
});
});
})
</script>
</body>
后端代码
@RequestMapping(value="getUserByName2/{name}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getUserByName2(HttpServletRequest request,@PathVariable("name") String name){
ResponseData responseData=new ResponseData();
try{
String token = request.getHeader("token");
responseData = apiService.userIfExist(token, name);
} catch (Exception e) {
e.printStackTrace();
responseData.setStatus(1);
responseData.setMsg("系统异常");
}
return "callback2("+JSONObject.fromObject(responseData).toString()+")";
}
callback2就是我前面ajax里面定义的jsonpCallback,这块必须对应上
请求成功的返回结果如图: