ajax跨域问题返回json数据

2 篇文章 0 订阅

跨域提交:【和普通的提交只是前台的jsonp后台的返回方式稍微有点区别】

        $.ajax({
                url:"http://localhost:8080/xxx.action",
                type:"get",
                dataType:"jsonp",  //数据格式设置为jsonp

                jsonp:"callback",//后台返回json需要用callback包起来
                data:{"searchNo":searchNo},
                async:"false",
                success:function(data){
                    if(data != null ){
                        //根据busyType跳转页面
                        //回填对象
                        if(data.code ==200){

                          alert(data.message);

                         //业务回填
                        }
                    }
                },
                beforeSend:function(){
                }
            });

后台:

public void xxx.action(){

Stirng id = this.getRequest().getParameter("searchNo");

String callback = this.getRequest().getParameter("callback");

JSONObject json = new JSONObject();

if(StringUtils.isNotBlank(searchNo)){
            ........//业务

         
            json.put("code", 200);
            json.put("message", "success");
        }
          renderText(callback+"("+json.toString()+")");

}

同项目下普通的ajax提交:

        $.ajax({
                url:"http://localhost:8080/xxx.action",
                type:"get",
                dataType:"json",  //数据格式设置为jsonp
                data:{"searchNo":searchNo},
                async:"false",
                success:function(data){
                    if(data != null ){
                        //根据busyType跳转页面
                        //回填对象
                        if(data.code ==200){

                          alert(data.message);

                         //业务回填
                        }
                    }
                },
                beforeSend:function(){
                }
            });

后台:

public void xxx.action(){

Stirng id = this.getRequest().getParameter("searchNo");

JSONObject json = new JSONObject();

if(StringUtils.isNotBlank(searchNo)){
            ........//业务

         
            json.put("code", 200);
            json.put("message", "success");
        }
        renderText(json.toString());

}

----------------------------------------------------------------------------------------------------------------------------------------------------》》》

可能出现情况,后台返回的json方法,前台一直跳转到error的方法,不进入success方法

原因有两种:

1、dataType的方式要确定是jsonp(跨域提交)还是json

2、ajax里面参数url的头地址要和访问的系统头地址要一样,即使是localhost和127.0.0.1也会因为报错而不进入success方法,进入error方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值