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

准备:

自己先建立一个最普通的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查看,具体的问题还得具体再分析,希望帮到大家!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值