天天看点

jsp实现 AJAX 跨域代理

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=