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

  次阅读 作者:智能小宝 来源:互联网 2016-01-26 10:19 我要评论(0)

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

解决方法:通过jquery提供的$.getJSON()可以跨域获得JSON格式的数据。优点:兼容性强。

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();

}

Js前台调用代码

复制代码 代码如下:

$(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);

});

})

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

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...