jsonp的小实现
跨服务器传值,jsonp的基本实现,在不能共享cookie时可以使用;
跨服务器传值首先用cookie,用不了再用jsonp;
在java应用端点击论坛后跳到论坛并自动登录;
1点击时跳到gotobbs.jsp设置cookie,然后再跳转;此为准备数据,不是jsonp;
2?在php应用的登录页login_simple或footer.html中加如下js:
?
<script type="text/javascript">function backlogin(result){ if(login==1){//alert(result.name); //alert(result.pwd);if(result.name!=''&&result.pwd!=''){if($('ls_username')){$('ls_username').value=result.name;$('ls_password').value=result.pwd;$('lsform').submit();}}} } </script>?下面是最重要的一句<script type="text/javascript"src="http://localhost:8080/fss/page/jsonp/getCookie.jsp?callback=backlogin"></script>?说明:login=1,原是为区分是否退出的,不重要,可无;最重要的是上边这一句,带src的,用请求动态生成js语句(也就是拼字符串),此语句可以调用backlogin函数,参数是动态生成的json,因此有很大的灵活性;json数据来自cookie,也可以来自其它;此script+src也可以动态生成并追加至文档。
?
3?getCookie.jsp
<%String name = "";String pwd = "";Cookie[] cookies = request.getCookies();if (null == cookies) {return;}for (Cookie c : cookies) {if ("fss_name".equals(c.getName())) {name = c.getValue();}if ("fss_sss".equals(c.getName())) {pwd = c.getValue();}}%><%String callback = request.getParameter("callback");out.print(callback + "({ name:'" + name + "',pwd:'" + pwd + "'});");out.print(callback);out.flush();%>??