1:在做微信公众平台上的开发时,发现,本来在pc端好好的ajax请求,到了手机页面上就无效了,用UC开发者手机浏览器连接pc测试,发现手机上的页面后台请求,ajax本来是get变成了options了,搞了好久,最后解决了。问题的原因http://www.clanfei.com/2012/08/1637.html这个链接上文章解释了引发跨域的原因。
2:我用jQuery的方式解决的,http://api.jquery.com/jQuery.getJSON/两种解决思路,
jQuery中如何通过JSONP来跨域获取数据
(1) 第一种方法是在ajax函数中设置dataType为'jsonp':
- $.ajax({
- dataType:'jsonp',
- url:'http://www.a.com/user?id=123',
- success:function(data){
- //处理data数据
- }
- });
(2) 第二种方法是利用getJSON来实现,只要在地址中加上callback=?参数即可:
- $.getJSON('http://www.a.com/user?id=123&callback=?',function(data){
- //处理data数据
- });
我是通过第二种方式,
js中的代码:
var data= {id:2};//传参数 //注意url一定要以callback=?的形式拼接,callback参数名可以自定义, var url = 'http://weixin.hehehe.com/filing/charge.json?callback=?'; $.getJSON(url,data,function(backdata){ alert(backdata)//后台返回json格式的数据 });
@RequestMapping(value = "filing/charge",method = RequestMethod.GET) public void charge(Integer id,HttpServletRequest request,HttpServletResponse response) throws IOException { String callback = request.getParameter("callback");//jquery生成的自定义函数名 response.setCharacterEncoding("UTF-8"); response.setContentType("text/json;charset=utf-8"); PrintWriter out = response.getWriter(); out.print(callback + "("+ JSON.toJSONString(list)+")"); out.flush(); out.close(); }
这里面的list是一个后台数据库查询的list集合,把这个list集合转换成json格式传到前台js中.
到此就解决ajax跨域的问题了。
后续有很多开发填坑的文章发布,如果对你有帮助,请支持和加关注一下
http://e22a.com/h.05ApkG?cv=AAKHZXVo&sm=339944
https://shop119727980.taobao.com/?spm=0.0.0.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。