我有一個名爲NewServlet.java
的servlet文件。這個servlet被我的AJAX腳本調用來檢索響應。我無法從使用AJAX的servlet檢索responseText
我已通過在瀏覽器中測試來驗證該servlet。
但是,當我把它從我的AJAX腳本,它給了我,說
的XMLHttpRequest無法加載 http://localhost:8084/WebApplication1/NewServlet空白
responseText
和錯誤。 地空沒有被允許 訪問控制允許來源
NewServlet.java
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class NewServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<option value='1'>one</option>");
out.println("<option value='2'>two</option>");
out.println("<option value='3'>three</option>");
out.println("<option value='4'>four</option>");
out.println("<option value='5'>five</option>");
out.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
的test.html
<html>
<head>
<script language = "javascript">
var xmlDoc = 0;
var xhttp = 0;
function reciveData()
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // IE 5/6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.onreadystatechange = redirectUser;
xhttp.open("GET","http://localhost:8084/WebApplication1/NewServlet",true);
xhttp.send();
}
function redirectUser()
{
if (xhttp.readyState == 4)
{
log = 0;
xmlDoc = xhttp.responseText;
alert(xmlDoc);
}
}
</script>
</head>
<body onload="reciveData()">
</body>
</html>
能有人指出我在正確的方向?
謝謝。
http://en.wikipedia.org/wiki/XMLHttpRequest#Cross-domain_requests是您遇到的問題。 – andyb 2011-04-25 18:02:06
@andyb謝謝,這非常有幫助。 – Searock 2011-04-26 04:15:36