AJAX调用responseText为空

时间:2013-09-21 06:27:58

标签: javascript ajax

我有一个小而简单的应用程序。它在Tomcat 7.Testing在Firefox浏览器上。 我的html页面位于

%CATALINA_HOME%\ web应用\例子\的servlet。 所以,我使用URL访问我的html页面:

http://localhost:8080/examples/servlets/userinputs.html

我的java servlet(调用第三方API并返回text / html响应)位于%CATALINA_HOME%\ webapps \ examples \ WEB-INF \ classes中。

我在js文件中使用AJAX调用通过URL调用此servlet:

http://localhost:8080/examples/servlets/servlet/challengetask

返回的responseText为空。如果我从浏览器访问servlet,我可以看到响应。 我确实通过了相同的域策略并进行了搜索 类似问题的互联网。但是,我无法弄清楚为什么responseText是空的,问题究竟是什么。

我的AJAX电话:

var request =false;
if(window.XMLHttpRequest){
 request = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
 try{
 request = new ActiveXObject("Microsoft.XMLHTTP"); 
}
catch(e){
} 
} 
}   


if(request){
 request.open("GET",url,true);
 request.onreadystatechange = callBack;
 request.setRequestHeader("Connection","Close");
 request.setRequestHeader("Method","GET"+url+"HTTP/1.1");
 request.send();
}
else {
alert("Sorry could not create an XMLHttpRequest");
}
}
function callBack(){
if(request.readyState == 4){
    if(request.status == 200){
    alert(request.responseText);
}
} }

P.S:html和js都在同一个文件夹中。 请帮忙。

2 个答案:

答案 0 :(得分:0)

在你的代码中有不需要的大括号(见我和我的代码段),删除它。 第二件事是为什么你使用connection = close,如果你真的不需要它就把它删除。

if(request){
 request.open("GET",url,true);
 request.onreadystatechange = callBack;
 request.setRequestHeader("Connection","Close");
 request.setRequestHeader("Method","GET"+url+"HTTP/1.1");
 request.send();
}
else {
    alert("Sorry could not create an XMLHttpRequest");
}
}

答案 1 :(得分:0)

通过将localhost替换为127.0.0.1来修复它。