Code Bye

ajax如何发送请求到action中?

 

以前做ajax发送异步请求,局部刷新时,发送请求都是直接发送到servlet中,现在我用ssh整合了一个项目,如果要发送一个请求到action中该怎么配置??我是这样写的,在struts.xml文件中,配置了一个方法

<action name="checkUser" class="stuAction" method="checkStu"></action>

然后发送请求:

var url="checkUser?username="+username;

调用发送请求后,数据响应失败,xmlhttp.status为404,应该就是url地址的问题,
firedebug调试后的显示的信息:
NS_ERROR_FAILURE: Failure
xmlhttp.send(null);

返回到前面的问题:ajax如何发送请求到action中?

楼主 ,在你的action类中为你相应的数据加上get方法,不然无法回调回到页面。。
引用 1 楼  的回复:

楼主 ,在你的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 楼  的回复:

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”>……

现在能进到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没啥关系,你的错误就是路径的问题,你的方法是对的。
引用 10 楼  的回复:

这和jquery没啥关系,你的错误就是路径的问题,你的方法是对的。

路径不就是和servlet一样吗?我的意思是,是不是直接写struts.xml中的Action类的名字???

跟楼主用的一样的方法,完全没反应,楼主怎么解决的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ajax如何发送请求到action中?