struts2 ajax 利用json取不到返回值

jsp页面中的JavaScript:

<script language="JavaScript">
        function validateName()
        {
            //请求的地址
            var url = 'validateName.action';
            var params = Form.Element.serialize('id');
            //创建Ajax.Request对象,对应于发送请求
            var myAjax = new Ajax.Request(
            url,
            {
                //请求方式:POST
                method:'post',
                //请求参数
                parameters:params,
                //指定回调函数
                onComplete: processResponse,
                //是否异步发送请求
                asynchronous:true
            });
        }
        function processResponse(request)
        {   
            alert(1);
            var action = request.responseText.parseJSON();
            alert(2);
            $("tip").innerHTML = action.tip;
        }   
    </script>

在执行的时候alert(1);有值
alert(2);没有反应


jsp页面中的form:



                <tr align="center">
                    <td height="47" colspan="3"><input type="submit" value="提交" /></td>
                </tr>
               </s:form>

在执行的时候alert(1);有值
alert(2);没有反应这是为什么啊??

你的action结果类型是配置是为json吗,还有,打印下request.responseText看

先研究这个ajax请求有没成功发送??

转为为json对象方法:eval('('+Data+')');
[code="JavaScript"]function processResponse(request)
{
alert(1);
var action = eval('('+request.responseText+')');
alert(2);
$("tip").innerHTML = action.tip;
} [/code]

[quote]var action = request.responseText.parseJSON(); [/quote]

调这句的时候出错了,检查一下返回结果是否正确。

[code="js"]
Ext.Ajax.request({
url : yoururl,
method : 'POST',
params:{'paramName':paramValue},
success : function(response) {
//成功处理
var respText = Ext.util.JSON.decode(response.responseText);
alert("提示", resText.XXX);
// .... });
},
failure : function(response, options) {
//失败处理
// .... }
});
[/code]

[quote]function processResponse(request) [/quote]
request是不是为null啊?

检查一下你的struts.xml中validateName action的配置。如果你使用的是json。
下面配置中的[color=red]extends=extends="json-default" [/color]以及返回类型为[color=red][/color]

[code="xml"]







[/code]

另外:看看返回是什么东西?

[code="JavaScript"]function processResponse(request)
{
alert(1);
alert(request.responseText);

var action = eval('('+request.responseText+')');
alert(2);
alert(action);
$("tip").innerHTML = action.tip;
} [/code]