jsp实现 ajax 跨域代理2008-04-17 17:39
http://hi.baidu.com/afeiecho/blog/item/6afe39ec878946382697918f.html
proxy.jsp:
<%@ page import="java.net.*,java.util.*,java.lang.*,java.io.*"%><%@ page contenttype="text/xml;charset=gb2312"%><%
string url = null;
stringbuffer params = new stringbuffer();
enumeration enu = request.getparameternames();
int total = 0;
while (enu.hasmoreelements()) {
string paramname=(string)enu.nextelement();
if(paramname.equals("url")){
url=request.getparameter(paramname);
}else{
if(total==0){
params.append(paramname).append("=").append(urlencoder.encode(request.getparameter(paramname), "utf-8"));
} else {
params.append("&").append(paramname).append("=").append(urlencoder.encode(request.getparameter(paramname), "utf-8"));
}
++total;
}
url = url + "?" + params.tostring();
//out.println(url);
if(url != null){
// 使用get方式向目的服务器发送请求
url connect = new url(url.tostring());
urlconnection connection = connect.openconnection();
connection.connect();
bufferedreader reader = new bufferedreader(new inputstreamreader(connection.getinputstream()));
string line;
while((line = reader.readline()) != null){
out.println(line);
reader.close();
%>
ajax中不能直接访问http://www.otherpersondomain.com/a.jsp?param1=&param2=
所以通过访问proxy.jsp代理访问:
proxy.jsp?url=http://www.otherpersondomain.com/a.jsp&param1=&param2=