以前做ajax发送异步请求,局部刷新时,发送请求都是直接发送到servlet中,现在我用ssh整合了一个项目,如果要发送一个请求到action中该怎么配置??我是这样写的,在struts.xml文件中,配置了一个方法 <action name="checkUser" class="stuAction" method="checkStu"></action> 然后发送请求: var url="checkUser?username="+username; 调用发送请求后,数据响应失败,xmlhttp.status为404,应该就是url地址的问题, 返回到前面的问题:ajax如何发送请求到action中? |
|
楼主 ,在你的action类中为你相应的数据加上get方法,不然无法回调回到页面。。
|
|
您说的是属性吗?属性都有getter,setter方法啊 |
|
20分 |
1.首先action所在的package要继承json-default 如:<package name=”index” namespace=”/index” extends=”json-default”>
2.返回的result(root是固定的值) <result type=”json” name=”register_input”> <param name=”root”>result</param> </result> 3.要引入json所必要的jar包 |
现在能进到3了,就是alert(xmlhttp.status);能弹出3来,但还是响应数据失败, if(xmlhttp.readyState==4){ if(xmlhttp.status==200){ if(xmlhttp.responseText.trim()=="false"){ stu.innerHTML="用户名可用"; }else{ stu.innerHTML="用户名不可用"; } }else{ alert("服务器响应数据失败"); alert(xmlhttp.status); } }else { alert(xmlhttp.readyState) } 弹出响应数据失败后,弹出404.我在struts.xml文件中也加上了; <package name="index" extends="json-default"> <action name="checkUser" class="stuAction" method="checkStu"> <result type="json" name="success"> <param name="root">result</param> </result> </action> </package> 然后jar包加了一个:json-lib-2.2.2-jdk15.jar,难道加错jar包了,求指教。 |
|
和Url 调用servlet一样
|
|
顶5楼~~路径是一回事啊~
|
|
20分 |
还是拿jquery 的ajax试试
上官网去找jquery的js、 我的版本是1.8.1的js var username = "admin"; $.ajax({ url:""/checkUser.action"",//路径不对自己修改 data:{ username : username , curTime: new Date().getTime() }, type:""POST"", dataType:""json"", async: false, success:function(data) { //如果有返回值 //alert(data); }, error:function(){ alert("添加失败"); } }); |
忘了说:
data:{ username : username , //第一个是你action里变量名 : 第二个是你要传递的值 }, |
|
百度搜jquery ajax,一大堆。7楼说的只是其中一种方法
|
|
这和jquery没啥关系,你的错误就是路径的问题,你的方法是对的。
|
|
路径不就是和servlet一样吗?我的意思是,是不是直接写struts.xml中的Action类的名字??? |
|
跟楼主用的一样的方法,完全没反应,楼主怎么解决的
|