起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2007|回复: 6

[结贴] ajax访问servlet,在“账户信息页”刷新数据会报异常

[复制链接]

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
发表于 2016-8-12 16:51:49 | 显示全部楼层 |阅读模式

以下是我访问servlet的代码,,疑惑的是在其他页面执行刷新就不会出现异常  如:切换到个人信息页执行刷新,数据就完全正常
define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        //var Baas = justep.Baas;
        var Model = function(){
                this.callParent();
                this.loadData=true;
                this.loadInfoData=true;
        };

   //个人信息页刷新事件
        Model.prototype.myselfContentActive = function(event){
                 var jsonStr="";
                 //var mydata = event.source;
       var data = this.comp('data1');
      
        var jsonObject;
            $.ajax({
              type: "get",
              url: "http://192.168.1.89:8081/InvertJson/JsonDemo",
             async:false,
             cache:false,
              dataType: "jsonp",
              jsonp: "CallBack",
              jsonpCallback:"test",
              success: function (rjson){
                 if (rjson.length != 0)
                   {
                    jsonStr = '{"name":{"value":"'+ rjson.name +'"},"age":{"value":"' + rjson.age +'"},"sex":{"value":"'+rjson.sex+'"}}';
                    }
                         jsonObject=JSON.parse('{"@type":"table","rows":[' + jsonStr +']}');
                         // alert(jsonStr);
                                
                       //加载到数据组件
                      data.loadData(jsonObject);
             //刷新数据组件
                    if(this.loadData){            
                     this.comp("list1").refresh(true);
                     data.refreshData();
                     this.loadData=false;
                        
                        
                       }
             },
              error:function (){  
                      alert("获取用户基本信息错误");
             }
          });
        };





        //账户信息页刷新事件
        Model.prototype.accountContentActive = function(event){
       
                var infoData=this.comp("infoData");
                         //var data = this.comp('data1');
        var jsonStr="";
                        var jsonObject;
            $.ajax({
              type: "get",
              url: "http://192.168.1.89:8081/InvertJson/InfoDataJson",
             async:false,
             cache:false,
              dataType: "jsonp",
              jsonp: "CallBack2",
              jsonpCallback:"test",
              success: function (rjson){
             // alert(rjson.fAccount);
                 if (rjson.length != 0)
                   {
                    jsonStr = '{"fAccount":{"value":"'+ rjson.fAccount +'"},"fMoney":{"value":"' + rjson.fMoney +'"},"fName":{"value":"'+rjson.fName+'"}}';
                    }
                         jsonObject=JSON.parse('{"@type":"table","rows":[' + jsonStr +']}');
                          //alert(jsonStr);
                                
                       //加载到数据组件
                       infoData.loadData(jsonObject);
                     //数据刷新
                    if(this.loadInfoData){
                     this.comp("list3").refresh(true);
                     infoData.refreshData();
                     //如果返回的json数据为空新创建一个data数据
                     if(infoData.getCount()==0){
                                        infoData.newData({
                                         defaultValues:[{
                                         "fAccount":"请输入账号",
                                         "fMoney":100,
                                         "fName":"持卡人姓名"
                                         }]
                                        })
                                }
                     this.loadInfoData=false;
                       }
                       
                       
             },
              error:function (){  
                      alert("获取账户信息错误");
             }
          });
        };


        return Model;
});
发表于 2016-8-12 18:26:08 | 显示全部楼层
报错信息是什么??有没有跨域问题?
可以调试代码看下是哪儿引起的错误!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2016-8-12 21:25:24 | 显示全部楼层
有跨域访问webService,调试了,但还是没找到问题出在哪里。
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2016-8-12 22:05:54 | 显示全部楼层
本帖最后由 dex 于 2016-8-12 23:03 编辑

我运行的详细如图:

首次加载页面

首次加载页面

然后进入"账户信息页",再点击顶上的刷新

然后进入"账户信息页",再点击顶上的刷新

就会抛异常,异常信息"获取用户基本信息错误"是前一个页面"个人信息"页里面的ajax的error:function函数抛出 ...

就会抛异常,异常信息"获取用户基本信息错误"是前一个页面"个人信息"页里面的ajax的error:function函数抛出 ...

最后input控件显示都是undefined

最后input控件显示都是undefined
回复 支持 反对

使用道具 举报

发表于 2016-8-15 10:55:30 | 显示全部楼层
dex 发表于 2016-8-12 22:05
我运行的详细如图:

建议您debugger 调试下看看,哪行代码执行存在异常:http://docs.wex5.com/js-debug/

先试试在浏览器中直接输入那个url 能否正常访问并取得结果!
如果可以的!说明这个服务器请求是正常的!

应该就是需要服务器设置支持跨域的问题了!
http://docs.wex5.com/ajax-cross-domain/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2016-8-15 13:39:34 | 显示全部楼层
liangyongfei 发表于 2016-8-15 10:55
建议您debugger 调试下看看,哪行代码执行存在异常:http://docs.wex5.com/js-debug/

先试试在浏览器中 ...

使用debugger感觉是对的呀,执行结果:debugger;test({"fAccount":"80880","fMoney":"22000","fName":"网网络"})

debug结果

debug结果
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2016-8-15 15:36:39 | 显示全部楼层
liangyongfei 发表于 2016-8-15 10:55
建议您debugger 调试下看看,哪行代码执行存在异常:http://docs.wex5.com/js-debug/

先试试在浏览器中 ...

问题已经解决了,谢谢你的帮助,原因是我多在$.ajax({})中多加了个jsonpCallback:test;参数造成的错误,注释掉在测试就ok了

错误就在红色框内

错误就在红色框内
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-28 23:23 , Processed in 0.062579 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表