前面我们说的跨域读取Cookie,仅限于同一级域名情况。
要跨域读取或设置Cookie,这种方法还有局限,我们可以用下面的方法来简单实现。
<script type="text/javascript">
function createScript(theme){
var url = "http://xxx.xx.xx.xx/gzgx/themeStyle.jsp?theme="+theme;
var script = document.createElement(‘script‘);
script.id="remoteScriptLinkStyle";
script.setAttribute(‘src‘, url);
// 把script标签加入head,此时调用开始
document.getElementsByTagName(‘head‘)[0].appendChild(script);
}
function setRomteCookie(theme){
if(Ext.DomQuery.selectNode("script[id=‘remoteScriptLinkStyle‘]")==null){
createScript(theme);
}else{
Ext.DomQuery.selectNode("script[id=‘remoteScriptLinkStyle‘]").remove();
createScript(theme);
}
}
</script>
调用方法:
setRomteCookie(subCook);
在远程服务器端写一个处理themeStyle.jsp即可:
<% String theme = request.getParameter("theme"); System.out.println("theme:"+theme); Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for(int i=0;i<cookies.length;i++){ Cookie cookie = cookies[i]; if("theme".equals(cookie.getName())){ response.addCookie(cookie); } } } Cookie cookie = new Cookie("theme",theme); response.addCookie(cookie); %>
这样就能够本地请求远程设置Cookie了。
原文:http://www.cnblogs.com/tzhz/p/3532193.html