java结合jQuery的ajax异步发起jsonp请求

2017-10-26 19:51:08来源:CSDN作者:WantBeStrong人点击

分享

准备:

自己先建立一个最普通的web项目,也不使用什么框架了,直接怼一个HttpServlet,代码如下
public class JsonpServlet extends HttpServlet {	public void doGet(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {		doPost(request,response);	}	public void doPost(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {		response.setContentType("text/html");		PrintWriter out = response.getWriter();		// jsonp请求的回调方法名字默认为callback,发起请求时会自动拼接在URL中,所以这里可以获取,也可以不用获取		// 如果需要指定不同的方法名,需在ajax的参数jsonp: "你的方法名" 中进行设置,		// 并且 String method = request.getParameter("你的方法名");,否则使用callback默认名称		String method = request.getParameter("callback");		String name = request.getParameter("name");		out.print(method+ "( [{ name:/"tanglei/"},{ name:/"xiaoming/"},{ name:/""+name+"/"}]  )"  );		out.flush();		out.close();	}}
接下来,自己随意搞一个html,在其中加上script
<script type="text/javascript">// 自己触发这个function,发起跨域请求function jsonpTest(){	$.ajax({	url:"http://localhost:8080/testJsonp/servlet/JsonpServlet?name=xxx",        type: "GET",        	dataType: "jsonp",	//jsonp: "callback2",	jsonpCallback:"callback", // 这里的回调方法名一定要和java代码中接收的method名字相同,	                          // 并且自己要声明一个function callback()用于处理返回的数据	//contentType:"application/json",                  success:function(param){//回调函数		//成功之后去调用回调函数function callback(data)       		callback(param);    	}    });}//回调函数function callback(data) { 	//具体的数据处理.自己可以研究一下	//数据是一个数组格式callback( [{ name:/"tt/"},{ name:/"xiaoming/"},{ name:/"xxx/"}]  )  	alert(data[1].name);	//数据是一个json格式callback( { name:/"tt/"}  )	//alert(data.name);} </script>
准备工作完毕,可以触发调用function

测试截图

请求:


响应:结果:java结合jQuery的ajax发起跨域请求的Demo就是这样了,具体的参数信息可以去jQuery API查看,具体的问题还得具体再分析,希望帮到大家!

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台
l>