跨域请求

来源:互联网 发布:盐城都玩网络 编辑:程序博客网 时间:2024/06/06 19:04

跨域请求:实际经验说明只要不在同一个项目里面,异步请求另外一个项目,就要使用jsonp,否则请求不会成功. 而且jsopn的请求方式只能是get请求,post请求不支持jsonp的请求.

发送请求代码:

$.ajax({

                                     url:'http://10.10.37.234:4567/visitorDeatil/submit',

                                     dataType:'jsonp',

                                     type:"get",

                                     contentType:'application/json',

                                     data:{

                                                        contacts:"dfdf",

                                                        company:"fdfd",

                                                        duty:"dsfsdf",

                                                        remak:"fdsf",

                                                        phone:"fsdf",

                                                        systemCode:"1"

                                               },

                                               success:function(data) {

                                                        callback(data)

                                               }

                                     })

//这样才能拿到数据

                   functioncallback(data){                    

                            alert(data.msg)

                  

                   }

Jsonp请求路径上有callback函数,所以在服务中返回数据的时候,跟普通的请求的返回数据是不一样的,要返回一个js格式的数据,相当于把数据放到callback的函数里面返回.

服务端的代码:

@RequestMapping(value = "/submit", method = RequestMethod.GET)

    @ResponseBody

    public Objectsubmit(VisitorProbationDetail visitor, Stringcallback) throws Exception {

       if (StringUtils.isEmpty(visitor.getContacts()) ||StringUtils.isEmpty(visitor.getCompany())

              || StringUtils.isEmpty(visitor.getPhone())) {

           String result = callback + "(" + JSONObject.toJSON(ApiResult.build(0,"信息不完整!!!")).toString() +");";

           returnresult;

       }

       String msg = visitorService.save(visitor);

       if (0 ==msg.length()) {

           String result = callback + "(" + JSONObject.toJSON(ApiResult.build(200,"恭喜您申请成功!!!")).toString() +");";

           returnresult;

       }

       returncallback +"(" +JSONObject.toJSON(ApiResult.build(0,msg)).toString()+");";

    }

 

于普通请求返回数据不同的地方就是把json数据做了一层封装,封装到callback函数里面.

原创粉丝点击