uni-app从后端获取JSON数据,使用时显示undefined

uni-app从后端获取数据,使用时显示undefined

错误代码

 uni.request({
						
						url: this.config.webUrl+'login1',
						dataType: 'text',
						data: {
							tel:this.phone1,
							password:this.password
						},
						success: (res) => {
							
							console.log('request success---->', res.data);
							this.res =res.data ;//------------------------------这步出错
							/* this.res =JSON.parse(res.data) ; */
							console.log("登录code"+this.res.code);
							if(this.res.code==500)
							{
								return uni.showToast({
									title: this.res.msg,
									icon: 'none',
									duration: duration
								});
							}else if(this.res.code==0)
							{
								return uni.showToast({
									title: '登录成功',
									icon: 'success',
									mask: true,
									duration: duration
								});
							}
							//this.res = '请求结果 : ' + JSON.stringify(res.data);
						},
						fail: (err) => {
							console.log('request fail', err);
							uni.showModal({
								content: err.errMsg,
								showCancel: false
							});
						},
						complete: () => {
							this.loading = false;
						}
					});

出错结果:
在这里插入图片描述

后端取得的JSON数据有时是String 有时是object,把后端取得的数据转换成Object的方法:
this.res =JSON.parse(res.data) ;

uni.request({
						
						url: this.config.webUrl+'login1',
						dataType: 'text',
						data: {
							tel:this.phone1,
							password:this.password
						},
						success: (res) => {
							
							console.log('request success---->', res.data);
							this.res =JSON.parse(res.data) ;
							console.log("登录code"+this.res.code);
							if(this.res.code==500)
							{
								return uni.showToast({
									title: this.res.msg,
									icon: 'none',
									duration: duration
								});
							}else if(this.res.code==0)
							{
								return uni.showToast({
									title: '登录成功',
									icon: 'success',
									mask: true,
									duration: duration
								});
							}
							//this.res = '请求结果 : ' + JSON.stringify(res.data);
						},
						fail: (err) => {
							console.log('request fail', err);
							uni.showModal({
								content: err.errMsg,
								showCancel: false
							});
						},
						complete: () => {
							this.loading = false;
						}
					});

例如res.data 数据为:string

{"code":"0",
"data":{"user_address":"",
"user_birth":"",
"user_id":7,
"user_name":"",
"user_password":"737373",
"user_photo":"",
"user_sex":true,
"user_tel":"18888888888"},
"msg":"登录成功"}
this.myres=JSON.parse(res.data) ;
Consold.log("登录code"+this.myres.code);

结果
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用AJAX,有会遇到返回的JSON数据无法正确取值,提示undefined的问题。这可能是因为在不同版本的jQuery中对JSON数据格式进行了严格限制。在jQuery 1.4中,要求对字符串都使用""限定,而在之前的版本中可能不需要。所以,如果你的代码是基于jQuery 1.3编写的,在升级到jQuery 1.4后,可能需要修改JSON数据的格式。例如,原先的数据格式为{ isOk:true, msg:'传输成功' },在jQuery 1.4中需要修改为{ "isOk":true, "msg":"传输成功" }。这样修改后,就可以正确取值了。另外,还可以在ajax请求中指定dataType为"json",以确保正确解析返回的JSON数据。例如: ```javascript var dat = {id:"123456", name:"over"}; $.ajax({ type: "POST", url: "/Test.ashx", data: dat, dataType: "json", success: function(data) { if (data.isOk == true) { alert(data.msg); } else { alert(data.msg); } }, error: function() { alert("信息提交失败"); } }); ``` 如果你使用的是$.post方法,也需要在最后添加一个数据类型"json",例如: ```javascript $.post("/Test.ashx", dat, function(data) { alert(data.isOk); }, "json"); ``` 另外,如果后端返回的JSON数据是字符串,有是对象,你可以使用JSON.parse方法将字符串转换为对象。例如: ```javascript this.res = JSON.parse(res.data); ``` 这样就可以正确取得后端返回的JSON数据了。希望这些解决方法对你有帮助。 #### 引用[.reference_title] - *1* [Jquery中ajax传输json数据显示undefined错误](https://blog.csdn.net/jenny8080/article/details/84880406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [uni-app后端获取JSON数据使用显示undefined](https://blog.csdn.net/qq_41884068/article/details/105820814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值