2013-09-21 130 views
0

我有一個小的,簡單的應用程序。它在Tomcat上7.測試Firefox瀏覽器。 我的html頁面駐留在AJAX調用responseText空

%CATALINA_HOME%\ webapps \ examples \ servlets。 所以,我使用URL訪問我的html頁面:

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

我的Java Servlet(調用第三方API,並返回一個text/html的響應)位於%CATALINA_HOME%\的webapps \例子\ WEB-INF \類。

我用我的JS文件AJAX調用通過URL來調用這個servlet:

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

這個responseText返回的empty.If我從瀏覽器訪問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都在同一個文件夾中。 請幫忙。

+0

你可以發佈你的ajax電話嗎? –

+0

幫你一個忙,並添加jQuery到你的頁面。使用jQuery的瀏覽器中,AJAX更簡單,更可靠。 –

回答

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"); 
} 
} 
+0

通過用127.0.0.1替換localhost來修復它。 – Margi

0

通過用127.0.0.1替換localhost來修復它。