我正在使用ajax函数调用jsp(在另一个tomcat中)。但我得到任何回复..我把我的代码放在下面
这是我的ajax函数(在tomcatA中)
function connect(){
try{
// Firefox, Opera 8.0+, Safari
var xmlHttp=new XMLHttpRequest();
}catch (e){
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
alert(xmlHttp.status);
if(xmlHttp.readyState==4){
}
}
url="http://IP:PORT/List/Get.jsp";
xmlHttp.open("GET",url+"?sid="+Math.random(),true);
xmlHttp.send(null);
}
以下是我的Get.jsp(在tomcatB中)
<%@page import=" "%>
<%@page import=" "%>
<select>
<%Iterator it = HashMap.keySet().iterator();
while(it.hasNext()){
String key = (String)it.next();
String value = (String)HashMap.get(key);
%>
<option><%= key + " " + value %> </option>
<%}%>
</select>
但是如果我直接从浏览器访问Get.jsp它的工作正常..我正在获取带有数据的组合框(正如我所料)。请帮我这个..我发誓URL并且好吧
答案 0 :(得分:2)
onreadystatechange未正确关闭,请更改以下代码:
xmlHttp.onreadystatechange=function(){
alert(xmlHttp.status);
if(xmlHttp.readyState==4){
}
进入这个:
xmlHttp.onreadystatechange=function(){
alert(xmlHttp.status);
if(xmlHttp.readyState==4){
// do sth
}
}
答案 1 :(得分:2)
JavaScript只能加载来自同一主机的数据,这称为SameOrginPolicy。简而言之,这大致意味着嵌入在ServerA上的HTML文件中的JavaScript代码只能通过AJAX从ServerA请求文档。这样做是出于安全原因。
答案 2 :(得分:0)
Ajax用于两个不同的tomcats之间。如果我们完成以下设置
IE - &gt;工具 - &gt;互联网选项 - &gt;安全 - &gt;自定义级别 - &gt;其他 - &gt;访问数据源跨域 - &gt;启用强>
此设置应在请求IE端
时完成