分享

mui.ajax与服务器(SpringMVC)传输json数据

 流浪的星星318 2017-06-06

跨域问题

  PC端为了安全,所以禁止跨域。而我使用mui做移动web时,难免会使用pc浏览器进行调试。mui.ajax是允许跨域的。为了可以调试成功,需要对浏览器进行设置及。以360急速浏览器为例,设置如下:

  

即在目标后添加 --disable-web-security(前面有空格)

前端设置

  

<script type="text/javascript" charset="UTF-8">
        regInfo = {name:'wuchao',password:'000111'};
      
        mui.ajax('http://localhost:8080/share/mobile/regist.do',{
            data:JSON.stringify(regInfo),
            dataType:'json',//服务器返回json格式数据
            contentType: "application/json",
            type:'post',//HTTP请求类型
            timeout:10000,//超时时间设置为10秒;
            headers:{'Content-Type':'application/json'},                 
            success:function(data){
                //服务器返回响应,根据响应结果,分析是否登录成功;
                alert(data.result);
            },
            error:function(xhr,type,errorThrown){
                //异常处理;
                alert("error");
            },
            headers: {
                'Access-Control-Allow-Headers':'X-Requested-With'
            }
        });
</script>

  

后端设置

需要三个jar包,jackson-annotations-2.7.0.jar jackson-core-2.7.0.jar jackson-databind-2.4.5.jar(版本都选为2.4.5应该是可以得,但databind包选为2.7.0会报错)下载地址请点击这里

   控制器如下:

实体类接收 

1
2
3
4
5
6
7
8
@RequestMapping(value = "/mobile/regist",method=RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public @ResponseBody ModelAndView handle4Mobile(@RequestBody  Info info){
        System.out.println(info.getName());
        Map<String, String> map = new HashMap<String, String>();
        map.put("result", "sucess");
        return new ModelAndView(new MappingJackson2JsonView(),map);
    }

  其中Info类对应前端传入的json数据。返回的数据对应前端success的回调函数的data参数。

JSON对象接收

1
2
3
4
5
6
7
8
@RequestMapping(value = "/mobile/regist",method=RequestMethod.POST,produces = "application/json;charset=UTF-8")
    public @ResponseBody ModelAndView handle4Mobile(@RequestBody  JSONObject jsondata){
        System.out.println(info.getName());
        Map<String, String> map = new HashMap<String, String>();
        map.put("result", "sucess");
        return new ModelAndView(new MappingJackson2JsonView(),map);
    }

  使用JSONObject对象接收前台传来的json数据,spring mvc会自动将前台的字符串转换成json对象。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多