ajax跨域解决方案:jsonp方式

6 篇文章 0 订阅

jsonp 只支持get请求不支持post请求

用法说明:

①dataType改为jsonp    

②jsonp : "jsonpCallback"————发送到后端实际为http://a.a.com/a/FromServlet?userName=644064&jsonpCallback=jQueryxxx     

③后端获取get请求中的jsonpCallback  

 ④构造回调结构

前端

$.ajax({
type : "GET",
async : false,
url : "http://a.a.com/a/FromServlet?userName=644064",
dataType : "jsonp",//数据类型为jsonp
jsonp : "jsonpCallback",//服务端用于接收callback调用的function名的参数
success : function(data) {
    if(data && JSON.stringify(data)!='{}'){
			var pressureList = data.pressureList;
    }
},
error : function() {
alert('fail');
}
});

后端

String jsonpCallback = request.getParameter("jsonpCallback");
//构造回调函数格式jsonpCallback(数据)
resp.getWriter().println(jsonpCallback+"("+jsonObject.toJSONString()+")");


完整后端方法实例:、
public void getList(HttpServletRequest request, HttpServletResponse response)
    throws IOException
  {
    String jsonpCallback = request.getParameter("jsonpCallback");
    Map map = new HashMap();
    System.out.println("进入方法");

    List pressureList = this.lsInterfaceService.getSiteData("1");

    List flowList = this.lsInterfaceService.getSiteData("2");

    List waterList = this.lsInterfaceService.getSiteData("3");
    map.put("pressureList", pressureList);
    map.put("flowList", flowList);
    map.put("waterList", waterList);

    JSONObject jsonObj = JSONObject.fromObject(map);
    response.getWriter().println(jsonpCallback + "(" + jsonObj.toString() + ")");
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值