首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

spring3接受jquery的ajax请求后不施行回调函数(success),求解

2012-12-17 
spring3接受jquery的ajax请求后不执行回调函数(success),求解如果您没用过sping3下用ajax交互json,可能看

spring3接受jquery的ajax请求后不执行回调函数(success),求解
如果您没用过sping3下用ajax交互json,可能看不懂下边的用法。
用过的同志有遇到过这种情况吗,请帮助解决!网上的办法也找了一些都不行,关键没有相关sping3下的这种情况,有说把dataType : 'json'注掉等等,都试了不管用。

Controller代码:
@RequestMapping(value="/sendemail", method = RequestMethod.POST)  
@ResponseBody 
public ShareEmail testSendMail(@RequestBody ShareEmail shareEmail){
//接收前台传过来的 json数据,封闭为shareEmail对象
String emailTo = shareEmail.getEmail();
String message = shareEmail.getMessage();

//利用接收到的数据,实现逻辑
SyncUtil.sendSimpleMailMessage(emailTo, message);

                  //因为有@ResonseBody,可以将返回值返回给页面
return shareEmail;
}

ajax代码:

                       $.ajax({   
        type : 'POST',   
        contentType : 'application/json',   
        url : '${contextPath}/edisk/sendemail',    
        data : jsonShareFormInfo,   
        dataType : 'json',
                            //下面的success不执行,不知道为什么,怀疑spring3在转化返回值为json对象时格式不对。
        success : function(data){ 
           alert(data.message);  
           //alert("发送成功");   
        },
        error : function(data){
           alert(data.message);
        }  
    }); 

配置文件的写法:

<!-- spring3在接收contentType为application/json的request时会自动将json字串间转换成期望 的java对象,
基于Jackson JSON Processor(http://jackson.codehaus.org/),返回时负责将数据转换成JSON格式-->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="messageConverters">  
            <list>  
                <ref bean="mappingJacksonHttpMessageConverter" />  
            </list>  
        </property>  
    </bean>  
    <bean id="mappingJacksonHttpMessageConverter"  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />  
 
[解决办法]
概念基本上就错误。
[解决办法]
支持lz
[解决办法]
学习了
------解决方案--------------------


二楼的朋友什么意思,没理解。
我没能弄明白才问大家谁有好的理解,你有深入的理解,希望赐教,畅所欲言。
单单是摆上一句风凉话,不言正题,不知道能显示出你的什么优越感。。。
[解决办法]
debug跟下呗,你要访问的后台类有没有访问到,先确定这个。如果没有,看看你的url已经配置,如果有了,看看程序处理的流程。
[解决办法]
数据正确到达后台,走完逻辑后,返回时怎么debug?已经到页面了,怎么跟
[解决办法]

引用:
二楼的朋友什么意思,没理解。
我没能弄明白才问大家谁有好的理解,你有深入的理解,希望赐教,畅所欲言。
单单是摆上一句风凉话,不言正题,不知道能显示出你的什么优越感。。。

你根本就不会,还谈什么理解或者深入理解。
[解决办法]
林子大啥鸟都有,yys79你滚出这个帖子,我是问技术的,也许你很牛,但请别在这里现!好吗?
的的色色的,爱装的人啥时候都有,我不会才听会的人讲,你鼻子撅的老高,在这装什么十三。
对待你这种人就不能好好和你说话,前面是跟你客客气气的尊重你,还来劲了,就削一次就不装了。
小时候没人教,长大了多补补!还是那句话,也许你技术牛,教养不敢恭维!
[解决办法]
@楼主,
SPRING里的业务逻辑 你单元测试 成功了没有
如果成功了再去整合界面层得东西。
[解决办法]
恩,业务逻辑全跑通,就是页面的回调(success)不执行,未解,我在IE8,ff,chrome下分别测了个一下回调函数 error 
IE8没反应,ff只是闪了一下就没了,chrome显示"undefined"。ajax返回的json数据肯定有问题
[解决办法]
引用:
恩,业务逻辑全跑通,就是页面的回调(success)不执行,未解,我在IE8,ff,chrome下分别测了个一下回调函数 error 
IE8没反应,ff只是闪了一下就没了,chrome显示"undefined"。ajax返回的json数据肯定有问题


记得前阵子我用DWR也调 SPRING管理的业务方法 但是怎么也调不了 

后来我把DWR让SPRING去创建,终于可以获得HIBERNATE的 currentSesseionFactory了。

我想你的问题跟我先前的一样。毕竟SPRING是使用代理机制的。

而你使用 JQUERY 去调用 SPRING管理的业务逻辑方法的时候 应该办不了。

就像SSH里面 还要加一个 STRUTS-SPRING-MVC的JAR包 否则SSH也整不起来。


[解决办法]
不是用jQuery去调用spring管理的业务逻辑方法,其实就是用JQuery写的一个简单的发送和返回ajax请求,只不过用的是spring3支持json,用第三方的jar(Jackson JSON Processor)和spring3的标签((@RequestBody,@ResponseBody)来完成,没有自己写ajax发送json那么明晰,网上用spring3出现这种问题的朋友有一些,没找到解决的办法。我自己再研究一下他返回的数据吧。
还是谢谢楼上的朋友!
[解决办法]
虽然我没能解决你的问题, 但看代码却解决了我的问题. 谢谢你~
[解决办法]
不知道楼主的问题解决了没有,我也出了这个问题,愁啊
[解决办法]
怪不得不执行,原来我返回的是{success:true,id:1} 这种不规则的字符串,不是严格的json格式,改成{"success":true,"id":"1"} 就可以正常执行success回调了。

   JSON格式总结下,详细的去json.org 查看。
  1)键名称:用双引号 括起
  2)字符串:用使用双引号 括起
  3)数字,布尔类型不需要 使用双引号 括起 




热点排行