http://www.cnblogs.com/zhangqingping/archive/2009/03/20/1417879.html
javascript 跨域请求的两种方法 还在为javascript跨域访问头疼么?以下两种解决方案或许可以帮你解忧: 1. 使用跳转请求页 使用跳转页不做详细介绍了,原理比较简单,因为服务器端脚本不存在跨域访问,所以在当前域名下新增一个页面来进行请求当前域外的页面,进而获得所需数据,给当前域下的页面使用。就相当于是,我要给国外的一位朋友送一个礼物,但是我没有获得签证(浏览器的许可),不能出国,所以只好委托一个快递公司来帮我做这件事了,区别是雇佣快递公司需要钱,多写个跳转页面成本没那么高 :) 2. 远程加载 javascript 方法 单独使用javascript的xmlhttp请求(也就是AJAX技术)其他域名下的页面时,会有权限问题。 浏览器对javascript本身加载js并没有跨域问题,例如中的src可以是任意的地址(域名可以不是当前请求的页面的域名)。 因此,我们可以利用这一点来进行javascript的跨域请求。 示例代码:a.html
1
2
3
4
5
6
7
8
9
10
19
20
21
22
相关咨询:
23
24
25
26
27
28
29 其中,src的地址 http://www.test.com/test.jsp就是远程需要加载的javascript代码页面。这个test.jsp中可以实现你所需要读取数据的操作,并组织成javascript代码输出。 示例代码:test.jsp
Code
<%@ page language="java" contentType="text/html;charset=gbk" session="false" %>
<%@ page import = "java.lang.Integer,java.util.* %>
<%request.setCharacterEncoding("utf-8");%>
<%
String strCnt = request.getParameter("cnt");
int nCnt = 10;
if(strCnt != null)
nCnt = Integer.parseInt(strCnt);
String strContent = "";
for(int i=0; i
strContent += "这里是测试数据_"+i+"
";
}
String strScript = "fnShowResult('"+strContent+"');";
%>
<%=strScript%>
这样,在test.jsp中读取所需数据之后,就调用a.html中已经定义好的fnShowResult函数来进行数据的展示了。哈哈,这样是不是很好玩? 不过,需要注意的是这种方法在给test.jsp提交数据参数时,是使用了get方法来提交信息,而get方法每次提交的信息不能超过 2k,不过在大部分应用2K都还够用,不是吗?