通过 jsp 上 书写 java 代码 执行 http 请求 中转 来处理跨域问题
java相关代码
<%@ page import=".*,.*,.*,.*"%>
<%@ page contentType="text/xml;charset=utf-8"%>
<%
//1.接收url参数
String url = null;
StringBuffer params = new StringBuffer();
Enumeration enu = ();
int total = 0;
while (()) {
String paramName = (String) ();
if (("url")) {
url = (paramName);
} else {
if (total == 0) {
(paramName)
.append("=")
.append((
(paramName), "UTF-8"));
} else {
("&")
.append(paramName)
.append("=")
.append((
(paramName), "UTF-8"));
}
++total;
}
}
//2.请求url获取数据
if (url != null) {
// 使用GET方式向目的服务器发送请求
URL connect = new URL(());
URLConnection connection = ();
();
BufferedReader reader = new BufferedReader(new InputStreamReader((),"UTF-8"));//注意处理编码问题
String line;
while ((line = ()) != null) {
(line);//输出数据给ajax回调函数接收
}
();
}
%>
封装的 AJAX .js
/**
* JavaScript Ajax Library
*
*
* get调用方式
* (
* url,
* function(data){
* //处理返回数据后
* },async
* );
*
* post调用方式
* (
* url,
* function(data){
* //处理返回数据后
* },async
* );
*/
var AJAXPROXY = js/?url=';//注意路径
var Ajax = new Object();
= function(){
if() {
var Ajax = new XMLHttpRequest();
}else if () {
try {
var Ajax = new ActiveXObject("");
} catch (e) {
try {
var Ajax = new ActiveXObject("");
} catch (e) {}
}
}
if (!Ajax) {
/*("不能创建XMLHttpRequest对象<SPAN class=hilite2>实例</SPAN>.");*/
return false;
}
return Ajax;
};
= ();
= function(callback){
=function(){
if(==4){
if(==200){
callback();
}
}
};
};
= function(url,callback,async){
async=async=="undefined"?true:false;
url = AJAXPROXY+encodeURIComponent(url);
('get',url,async);
(null);
!async?callback():(callback);
};
= function(url,callback,async){
async=async=="undefined"?true:false;
url = AJAXPROXY+encodeURIComponent(url);
('post',url,async);
('Content-Type', 'application/x-www-form-urlencoded;');
(null);
!async?callback():(callback);
};
/*字符串转换成json*/
function strToJson(str){
return eval('('+str+')');
};
调用例子,参数说明
('http://second_ftp_server:8180/weixin-developer/?methodName=getSign&url='+encodeURI(),
function(data){
//处理返回数据后
=(data);
alert();
},false);
3个参数 url 要执行的请求获取数据的 url ,fun () 执行完成之后的 回调函数, async 异步/同步 请求