sencha touch中JsonP跨域访问返回JSON字符串

客户端JS代码

Ext.data.JsonP.request({
                url: 'http://localhost:8888/login.do?method=phoneLogin',
                params:{
                    loginId:nameValue,
                    password:passwordValue
                },
                callbackKey: 'callback',
                callback:function(result){
                    Ext.Msg.alert(result);
                },
                success: function(response) {
                    if(response.success==true){
                        this.redirectTo('loadmain');
                    }else{
                        Ext.Msg.alert('登录失败',response.msg);
                    }
                },
                failure: function() {
                    Ext.Msg.alert('请求失败','AJAX请求发送失败!');
                }
            });

服务端代码

JSONObject result = new JSONObject();
        String callback = request.getParameter("callback");
        result.put("success",true);
        modelMap.put("jsonstring",callback+"("+result.toString()+")");

返回值要加上传过来的callback回调函数,这样在客户端解析才不会抛出invalidlabel错误.

相关推荐