日期:2014-05-16  浏览次数:20418 次

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回调函数,这样在客户端解析才不会抛出invalid label错误.