众所周知,ajax在跨域请求的时候会被浏览器的安全策略所阻止,但是在企业级项目中,经常会有不同项目之间需要进行直接通信,如果希望使用ajax的HTTP方式进行跨域请求的话,这里jsonp就可以排上用场了。直接上代码:
前端页面(跨域请求方):
<!DOCTYPE html>
<html>
<head lang="en">
<Meta charset="UTF-8">
<title></title>
<script src="jquery.min.js"></script>
<script> function load(data){ alert(1); } </script>
<script> $.getJSON("http://localhost:8080/FHMysqL/weui/index?jsonp=?",function(data){ alert(data[0].name); }) </script>
</head>
<body>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%=request.getParameter("jsonp")+"([{\"name\":\"value1\"}])"%>
这里会返回类似jsondsdf133527([{name:value1}])这样的回掉函数,去主动调用调用方ajax提供的回掉函数,这样就实现了跨域访问。不过这种跨域需要目标站后台的配合。