日期:2014-05-17  浏览次数:20816 次

关于Ajax调用struts1.x中的action的问题
用MyEclipse建的工程
WebRoot下有个common.js文件

struts-config.xml中action的配置如下:
<action
  attribute="registryForm"
  input="/users/error.jsp"
  name="registryForm"
  path="/registry"
  scope="request"
  type="weizhiyuan.MyBlog.struts.action.RegistryAction">
  <forward name="success" path="/users/reg_success.jsp" />
</action>

common.js中通过XMLHttpRequest的open方法,将请求发送到上面那个action,代码:
var xmlHttp = createXmlHttp();
var url = "/registry.do?username="+nameValue+"&password="+pwdValue+"&password2="+pwd2Value+"&question="+quesValue+"&answer="+ansValue+"&email="+emailValue+"&qq="+qqValue+"&occupation="+occuValue;
//window.alert("xml has bean created!");
window.alert(url);
window.alert(xmlHttp);//这里能打印出来
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

//window.alert("request has been dilevered!");
xmlHttp.onreadystatechange = function(url){
window.alert(xmlHttp.status);
if(xmlHttp.readyState == 1) window.alert("请求提交");//这里无任何反应
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
window.alert("200");
var fd = document.getElementById("fd");
closeed(fd);
window.alert("closed!");
var loginMS = document.getElementById("loginMS");
loginMS.innerHTML = responseText ;
}
}
}
为何请求发送不出去?


经过很多测试,我感觉应该是open方法的那个url参数的问题

帮帮忙了,谢谢大家!

------解决方案--------------------
xmlHttp.open("POST",url,true);
改为 xmlHttp.open("GET",url,true); 
看看,我看你传参方式是get的