客户端可以通过javascript和jquery两种方式进行跨域访问。
<!-- Jquery实现跨域访问 -->
<script type="text/javascript">
function test(){
$.getJSON("http://test.jsonp.com:8088/JsonpServer/test?jsonp=?", //jsonp属性执行到服务器端会被自动赋值,值为函数名
function (json){
alert(json[0].name);
});
}
</script>
<!-- 利用script src属性实现跨域访问-->
<script type="text/javascript">
function jsonpCallback(json)
{
alert(json[0].name);
}
</script>
<script type="text/javascript" src="http://test.jsonp.com:8088/JsonpServer/test?jsonp=jsonpCallback"></script>
服务器端:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//服务器端接到回调函数名字输出回调函数,客户端根据回调函数进行解析取得函数中json对象
response.setContentType("text/html; charset=utf-8");
String callback=request.getParameter("jsonp");
PrintWriter out = response.getWriter();
out.print(callback+"([ { name:\"跨域访问成功!\"} ] )");
}