日期:2014-05-16  浏览次数:20389 次

jsonp的小实现

跨服务器传值,jsonp的基本实现,在不能共享cookie时可以使用;

跨服务器传值首先用cookie,用不了再用jsonp;

java应用端点击论坛后跳到论坛并自动登录;

1点击时跳到gotobbs.jsp设置cookie,然后再跳转;此为准备数据,不是jsonp;

2?php应用的登录页login_simplefooter.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");