当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

js跨越获取数据问题记录

发表于: 2015-04-19   作者:haifengwuch   来源:转载   浏览:
摘要: js的跨越问题,普通的ajax无法获取服务器返回的值。   第一种解决方案,通过getson,后台配合方式,实现。 Java后台代码: protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String ca
js的跨越问题,普通的ajax无法获取服务器返回的值。

  第一种解决方案,通过getson,后台配合方式,实现。
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); 
//alert(backdata.name);
});
})

第二种解决方式,原理和第一种方式差不多,通过js,<script>的src属性,请求服务器代码,生产js代码方式
js代码
<script src ="http://localhost:8080/json/getcode"> </script>
<script> alert(code);</script>

java后台代码
protected void doPost(HttpServletRequest  req, HttpServletResponse resp)
throws ServletException, IOException { 
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
out.print("var code =123;");
out.flush();
out.close();
}


第三种解决方式,纯后台解决方式,就是想获取跨越的数据,可以用过自己的后台请求对方的后台获取数据,然后返回给前台,这种方式前台请求和以前的一样,这种方式对方后台基本不需要做额外开发。
  后台实现post或者get请求很多方式,如通过httpclient的,post或者get方式请求,获取数据处理后,返回给前台。

js跨越获取数据问题记录

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1。数据以Ajax方式获取,如: Ext.Ajax.request({ url: "DATA/project_fj/GetRoomInfoByMainid.aspx
最近用js写了一个计算器的页面。基本上使用到了,ul li的几点用法。用来布局,并且创造出了很不错的
JSP的内置对象在JSP页面中无须声明就可以直接使用,其内置对象常用的有Request,response,session,app
最近使用plsql多表关联查询满足条件的数据,最终导出符合条件的单表数据,如下所示: select e.* fro
  //来自于别人 使用Northwind 数据库   首先查询Employees表   查询结果: city列里面只有5个
抓住大数据产业的发展机遇,实现经济结构的转型升级,奋力走出一条西部欠发达城市实现经济发展与生态
通过代码创建了索引名称为demoindex,索引类型为school,以下是索引类型的数据映射结构: { "state"
因此一个NioEventLoop就可以处理很多链路,那么多个链路不能被并发执行了?只有一个线程,那就只能
原帖地址:http://www.cnblogs.com/leonwang/archive/2013/05/31/metro-cnblogs-parsehtmllist.html
一、元数据 DatabaseMetaData类 DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号