要在Request Headers中设置Content-Type为application/json最好在action中也顶一下返回的Content-Type为application/json

解决方案 »

  1.   

    jquery 可以这样设置contentType
    function fun1() {  
               $.ajax({  
                   url: "xxx.do",  
                   type: "POST",  
                   dataType: "json",  
                   contentType: "application/json; charset=utf-8",  
                   data: "",  
                   success: function(json) {  
                       alert(json.d);  
                   }
               });  
           } 
    Action里 你知道怎么做吧
      

  2.   

    <action name="House" class="houseAction">
                <result name="success" type="json" >
                 <param name="contentType">application/json</param>
                 <param name="root">action</param>
                 <param name="includeProperties">
                 ^result,
                 </param>
                 </result> 
            </action>
    我是这样配的,还是不行,请教一下
      

  3.   

    你是不是在后台把一个对象转化为了{"id":"4028efd439422d260139422d2a530000","name":"department"} 这个格式了再返回给客户端的么。
      

  4.   

    不是struts2的问题,而是你使用的不对。
    你在action中搞了json序列化,而struts2的json结果类型又搞了一次json序列化,所以就出现了你说的情况。
    正确的做法是在action中的result不要使用String类型,而是用Object类型,你想返回什么就直接赋值,然后struts2做他该做的那次序列化就ok了。
      

  5.   

    楼主说“我认为是在最后的输出过程中做了一次我不想要的转义”,其实是你在struts2的action函数里return "department";之前做了一次不必要的json序列化,多此一举了