Jqery Ajax请求Action方法


在开发中,我们经常会使用到ajax技术进行异步请求,与jqueryjson结合的ajax用的特别的多。Ajax并不是一种新的技术,而是jsxmlhtml/css 等这些web技术的集合,主要应用点就是它的异步交互。

最近几天在做用户注册功能时,有个ajax问题困扰了1天多的时间,可能对它不是太了解,才浪费了我大量的时间。现在把问题的解决过程,以及ajax常用的东西总结一下:

Ajax 的书写格式有javascript ajaxJquery ajaxjsajax描述了ajax向后台请求的每一步的过程,它都需要用语句表达出来。这样的写法对于初学者非常有用,可以帮助理解ajax原理。

#Js ajax的写法:

 Jqery Ajax请求Action方法_第1张图片

更多内容参考:http://www.w3school.com.cn/ajax/index.asp 

#Juery Ajax 的写法就相对简单了,也是比较常用的。

 Jqery Ajax请求Action方法_第2张图片

这种使用了回调函数,那么调用这个ajax方法的写法是这样的:

 Jqery Ajax请求Action方法_第3张图片

#jquery ajax的其他写法

http get请求

$.get(URL,callback);// url就是ajax请求的服务地址,第二个参数是回调函数


 由于http get请求时XMLHttpRequest对象的send方法不起作用,所以$.get也就没有向服务器端传送数据。

http post请求

$.post(URL,data,callback);// data是向服务端发送的参数数据,send只在post请求时有效

 

#jquery  ajax请求action方法

在用户注册时,不仅客户端需要进行验证,服务器端也需要必要的验证,为了提示用户是否注册成功,使用异步请求最合适了。我的项目框架使用的是struts2,所以用户注册的逻辑处理方法就在actin中做了。

【注意】

1使用ajax 请求action方法,那么struts.xml配置文件就没什么作用了,因为是异步请求。

2 acito方法设置返回值为void

【遇到的问题】在action方法中用了if语句进行判断,打算将注册失败,与注册成功的信息发送到客户端,但是在注册失败的逻辑内使用response.getWrite().write(“”);语句返回数据时,总是接收不到,而且注册成功后,不去执行success函数,而执行error函数。

【解决】

使用response.getWriter().print("exist");返回给ajax数据

有了这条语句,就表示ajax请求服务端成功,因为服务端返回数据了。

2 ajaxdataType设置为”text”。

这样返回给ajax时就只执行success方法了,而不会去执行error方法,因为每个逻辑都有返回值数据。

3success方法内,可以根据服务端设置返回的数据,判断注册的成功与失败。

代码如下:

客户端:

 Jqery Ajax请求Action方法_第4张图片

 Jqery Ajax请求Action方法_第5张图片

服务端:

 Jqery Ajax请求Action方法_第6张图片

 

error函数的写法】

 Jqery Ajax请求Action方法_第7张图片

 

over

 

你可能感兴趣的:(Java)