在请求的地址中出现了#,但是#在struts中是地址请求时候的特殊字符,怎样能让它转换为正常使用的字符呢?
例如:url=http://127.0.0.1:8080/ReqHGPS?MapType=0&HInfo=1217028#1217717#1217820#1218514#1217714#1217023&CID=1217028;当我请求这个地址的时候,IE会自动在#处给我自动截断,后面的就没法正常执行了。该如何解决呢。
#是不能换成其他的字符的。
例如:url=http://127.0.0.1:8080/ReqHGPS?MapType=0&HInfo=1217028#1217717#1217820#1218514#1217714#1217023&CID=1217028;当我请求这个地址的时候,IE会自动在#处给我自动截断,后面的就没法正常执行了。该如何解决呢。
#是不能换成其他的字符的。
在java端替换下
String url='http://127.0.0.1:8080/ReqHGPS?MapType=0&HInfo=1217028#1217717#1217820#1218514#1217714#1217023&CID=1217028';
url.replaceAll("#", "!");
这样试试看或是用URLEncoder.encode转换下也行
我这个返回的结果是一个图片。我查询到这个可以通过ajax发送,然后返回的是一些二进制流,用xmlhttp.responseBody接收,然后保存到一个路径下,在本地调用就行了。
谁知道xmlhttp.responseBody的用法,以及返回的数据流怎么能保存能文件呢?
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
headers=xmlhttp.getAllResponseHeaders();
with(new ActiveXObject("MSXML2.DOMDocument").createElement("node")){
dataType = "bin.base64";
nodeTypedValue = xmlhttp.responseBody;
src="data:"+headers.match(/Content-Type:\s*([^\s]+)/)[1]+";base64,"+text;
//得到的src中是二进制数据流,下面的语句是直接赋值给一个div的背景,但是当src数据流的长度很大的时候就出现了错误,不能正确赋值呢
document.getElementById("mapDiv").style.backgroundImage = "url("+src+")";
document.getElementById("load").style.display = "none";
}
}
}
xmlhttp.open("post",url);
xmlhttp.send();