ajax跨域$.getjson(,Ajax跨域查询完美解决通过$.getJSON()实现

原因:浏览器安全上做了限制,禁止ajax跨域获得数据。

Java后台代码:

protected void doPost(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException {

String callback =req.getParameter("callback");//jquery生成的自定义函数名

resp.setCharacterEncoding("UTF-8");

resp.setContentType("text/html;charset=utf-8");

PrintWriter out = resp.getWriter();

//返回json格式字符串,注意向前台输出的格式必须为 callback(json格式的字符串);

//callback是jquery生成的自定义函数名,返回这种格式,前台jquery代码会自动替换

//回调函数为此callback函数,从而达到跨域的效果,网上还有其他的跨域方案如:AJAJ

//原理应该也是和此方法一样。缺点是:返回数据量不宜过大,安全性差,建议重要数据不

//要通过这种形式传递。

out.print(callback+"({name:'111',sex:'222'});");

out.flush();

out.close();

}

$(function(){

//需要传的参数,可以不传。

var data= {param1:"param1",param2:"param2"};

//注意url一定要以callback=?的形式拼接,callback参数名可以自定义,

//但后台必须也要同步获取的参数名

var url = 'http://192.168.1.216:8080/DSFA/getUser?callback=?';

$.getJSON(url,data,function(backdata){

//其实后台返回的函数已经替换为此函数,所以backdata

//就是你从后台传过来的json对象。

alert(backdata);

});

})

如果有不明白的地方,请留言....

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值