关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总
来源:互联网 发布:软件编程语言 编辑:程序博客网 时间:2024/05/19 00:41
解决问题的关键是怎么把第二个域中的内容得到且具有简单的操作权限。
1、通过域名来解决,
将两个不同的环境的主域名配置成同一个域名,这样就不存在IE中的信任与不信任的问题,就可以互相访问了。
2、抓取页面内容的方法
在主域中增加抓取远程页面内容的方法。
//这是要引入的包
import java.io.InputStream;
import java.net.URLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URL;
//这是得到远程页面内容的方法
/**
* 功能:得到访问页面的内容(源代码)
* @param url
* @return 如果出现异常则返回null
*/
public String getContent(String url) {
StringBuffer result =new StringBuffer();
try {
URL uRL = new URL(url);
URL uRL = new URL(url);
URLConnection connection = uRL.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream inputstream = connection.getInputStream();
java.io.BufferedReader reader = new java.io.BufferedReader(
new java.io.InputStreamReader(inputstream));
String temp = "";
while ((temp = reader.readLine()) != null) {
result.append(temp);
}
reader.close();
reader = null;
inputstream.close();
inputstream = null;
connection.setDoInput(true);
connection.connect();
InputStream inputstream = connection.getInputStream();
java.io.BufferedReader reader = new java.io.BufferedReader(
new java.io.InputStreamReader(inputstream));
String temp = "";
while ((temp = reader.readLine()) != null) {
result.append(temp);
}
reader.close();
reader = null;
inputstream.close();
inputstream = null;
} catch (Exception e) {
e.printStackTrace();
e.printStackTrace();
result = null;
}
return result==null?null:result.toString();
}
}
return result==null?null:result.toString();
}
把远程页面中的内容抓取到之后,在自已的域中就可以随便操作了。
3、用动态脚本传数据,用Dom方法操作动态JS脚本请求
//创建一个脚本节点
var oScript = document.createElement('script');
//指定脚本src src可以指向任意域名
//注意src不再指向静态js,而是带着查询参数指向一个动态脚本广播服务。
oScript.src = "http://www.myurl.com/XXquery.jsp?pnudate="+Math.random()+"&"+yourQueryString;
//如果指定了charset 同时还可以解决xmlHttpRequest另一大困扰 乱码问题
//oScript.charset = "utf-8";
//通过Dom操作把这个新的节点加入到文档当中
document.getElementsByTagName("head")[0].appendChild(oScript);
var oScript = document.createElement('script');
//指定脚本src src可以指向任意域名
//注意src不再指向静态js,而是带着查询参数指向一个动态脚本广播服务。
oScript.src = "http://www.myurl.com/XXquery.jsp?pnudate="+Math.random()+"&"+yourQueryString;
//如果指定了charset 同时还可以解决xmlHttpRequest另一大困扰 乱码问题
//oScript.charset = "utf-8";
//通过Dom操作把这个新的节点加入到文档当中
document.getElementsByTagName("head")[0].appendChild(oScript);
这样只要XXquery.jsp的输出是可执行的javaScript脚本,比如:djsCallBack({jsondata});
当他从服务器返回后就会自动执行,你可以方便的用json方式来做数据传递了。
要注意,您的脚本请求最好带上时间戳,避免浏览器缓存造成取回的数据是缓存的数据的问题。
因为URL相同时,很有可能IE就不去执行,远程调用,而用本地缓存。
- 关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总
- 学习Java Web开发中遇到的问题,及其解决方法
- web service 开发过程中遇到的问题汇总:
- 关于友盟分享在开发中遇到的问题汇总~持续更新中
- Web Part 开发中遇到的问题及解决方法
- GDI+在界面开发中遇到的问题汇总
- GDI+在界面开发中遇到的问题汇总
- 在JAVAWeb开发中遇到的问题汇总
- 关于flex在做项目中遇到的问题
- java web遇到的各种问题汇总
- java web项目中遇到的问题和解决方法
- android 开发中遇到的问题汇总
- 最近开发中遇到的问题汇总
- android开发中遇到的问题汇总
- 日常开发中遇到的问题汇总
- android 开发中遇到的问题汇总
- 开发中遇到的问题汇总
- .net开发中遇到的问题汇总
- 常见视频接口大全
- 不要太“沉迷”于usb协议
- 谈谈Listener Servlet的应用
- 在globalmenuitems.h里新加menu id 后模拟器modis 从头开始编译()
- 使用PinYin4j.jar将汉字转换为拼音
- 关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总
- Java callback JAVA实现回调
- VMM systemverilog 的资源
- 2222
- “Compiling... ,Error spawning cl.exe”错误
- 模拟鼠标,按键代码
- SQLserver/Oracle/MySQL数据库分页 SQL语句
- 输入子系统分析 [input event evdev]
- ExtJs画面数据验证