调用servlet时Ajax状态为0
嗨,我正在尝试使用Ajax从servlet返回一个简单字符串,但是没有返回任何内容,因为readystate为4时状态始终为0 下面是.js代码调用servlet时Ajax状态为0,ajax,servlets,tomcat7,Ajax,Servlets,Tomcat7,嗨,我正在尝试使用Ajax从servlet返回一个简单字符串,但是没有返回任何内容,因为readystate为4时状态始终为0 下面是.js代码 function validate(choice) { //var url = "http://localhost:8080/examples/validate.do?id=" + escape(choice); var url = "../../validate.do" if(wind
function validate(choice) {
//var url = "http://localhost:8080/examples/validate.do?id=" + escape(choice);
var url = "../../validate.do"
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if(window.ActiveXObject) {
req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
alert("IM IN VALIDATE() with " + choice);
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
return false;
}
function callback() {
if(req.readyState == 4 ) {
if(req.status == 200){
var check = req.responseText;
alert(check);
}
else
alert(req.status);
}
}
和Java代码
package model;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DoAjaxServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
response.setContentType("text/html");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
String resultStr = "JUST RETURNING THIS STRING";
out.write(resultStr);
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
我使用Chrome在Tomcat7上运行这个,并从localhost:8080访问html文件,而不是运行local,因此很多解决方案都无法运行
去
http://localhost:8080/examples/validate.do
在Chrome中,它可以很好地打印字符串,所以我想我没有把url写错。js文件位于如下位置
http://localhost:8080/examples/jsp/HTE/my.js
我也试过使用“http://localhost:8080/examples/validate.do直接作为.js中的url,并将setHeader(“Access Control Allow Origin”(“*”)添加到Java文件中,但没有任何更改
在搜索了所有的帖子后,我对这一点有了很多想法。。。你能告诉我哪里会出问题吗