帖子
帖子
用户
博客
课程
显示全部楼层
167
帖子
6
勋章
1万+
Y币

[FAQ] api.ajax返回xml类型数据在安卓正常,苹果数据有问题

[复制链接]
发表于 2017-2-28 09:04:43
本帖最后由 周枫 于 2017-2-28 09:28 编辑

使用api.ajax调用webservice返回标准xml类型数据,同样调用接口,在安卓6.0返回正常数据,但是在苹果iphone6,ios10报错;
调用接口如下:
  1. function getBanGongMenu(callback) {
  2.                        api.ajax({
  3.                                 url : 'http://221.194.113.152/DSLX_MsgBus_TS/WS_MSG_App.asmx/Msg_App_Get3',
  4.                                 method : 'post',
  5.                                 dataType : 'xml',
  6.                                 cache : false,
  7.                                 data : {
  8.                                         values : {
  9.                                                 "token" : "ST_WS_SSO_3b5ee2cc-a357-4193-a12d-282f759bf440",
  10.                                                 "msg_userid" : "101"
  11.                                         }
  12.                                 }
  13.                         }, function(ret, err) {
  14.                                 console.log("ret:"+ret);
  15.                                 console.log("err:"+JSON.stringify(err));
  16.                                 
  17.                         });
  18.                 }
复制代码

安卓返回数据ret正确是xml类型的,可以解析数据,错误err为空
  1. [2017-02-28 09:15:38] [WiFi log] ret:<?xml version="1.0" encoding="utf-8"?>
  2. <ArrayOfMSG_RenRenTong xmlns:xsd="http://www**.**/2001/XMLSchema" xmlns:xsi="http://www**.**/2001/XMLSchema-instance" xmlns="http://**.**.cn/">
  3.   <MSG_RenRenTong>
  4.     <Msg_result>1</Msg_result>
  5.     <Function_ID>f766c02b-255a-496f-8061-aa74a51d8309</Function_ID>
  6.     <Function_Name>接收公告</Function_Name>
  7.     <Function_URL>http://221.194.113.163:6611/base-server/app?sys=business_bg&path=/oa/announcement/listReceiveAnnouncement</Function_URL>
  8.     <User_ID>8E67AA00-2980-4B60-A802-7C6FB5BAAA15</User_ID>
  9.     <User_Token>ST_WS_SSO_3b5ee2cc-a357-4193-a12d-282f759bf440</User_Token>
  10.     <Msg_Type>0</Msg_Type>
  11.     <Msg_Num>0</Msg_Num>
  12.   </MSG_RenRenTong>
  13.   <MSG_RenRenTong>
  14.     <Msg_result>1</Msg_result>
  15.     <Function_ID>f8576346-ba9b-488b-a05f-c01a92c7e68a</Function_ID>
  16.     <Function_Name>接收通知</Function_Name>
  17.     <Function_URL>http://221.194.113.163:6611/base-server/app?sys=business_bg&path=/oa/notice/listReceiveNotice</Function_URL>
  18.     <User_ID>8E67AA00-2980-4B60-A802-7C6FB5BAAA15</User_ID>
  19.     <User_Token>ST_WS_SSO_3b5ee2cc-a357-4193-a12d-282f759bf440</User_Token>
  20.     <Msg_Type>0</Msg_Type>
  21.     <Msg_Num>0</Msg_Num>
  22.   </MSG_RenRenTong>
  23. </ArrayOfMSG_RenRenTong> at yy_new_index.html : 628
  24. [2017-02-28 09:15:38] [WiFi log] err: at yy_new_index.html : 629
复制代码


苹果返回数据ret为空,错误err报错
  1. [2017-02-28 08:59:55] [WiFi log] ret:undefined
  2. [2017-02-28 08:59:55] [WiFi log] err:{"body":"<?xml version="1.0" encoding="utf-8"?>\r\n<ArrayOfMSG_RenRenTong xmlns:xsd="http://www**.**/2001/XMLSchema" xmlns:xsi="http://www**.**/2001/XMLSchema-instance" xmlns="http://**.**.cn/">\r\n  <MSG_RenRenTong>\r\n    <Msg_result>1</Msg_result>\r\n    <Function_ID>f766c02b-255a-496f-8061-aa74a51d8309</Function_ID>\r\n    <Function_Name>接收公告</Function_Name>\r\n    <Function_URL>http://221.194.113.163:6611/base-server/app?sys=business_bg&path=/oa/announcement/listReceiveAnnouncement</Function_URL>\r\n    <User_ID>8E67AA00-2980-4B60-A802-7C6FB5BAAA15</User_ID>\r\n    <User_Token>ST_WS_SSO_3b5ee2cc-a357-4193-a12d-282f759bf440</User_Token>\r\n    <Msg_Type>0</Msg_Type>\r\n    <Msg_Num>0</Msg_Num>\r\n  </MSG_RenRenTong>\r\n  <MSG_RenRenTong>\r\n    <Msg_result>1</Msg_result>\r\n    <Function_ID>f8576346-ba9b-488b-a05f-c01a92c7e68a</Function_ID>\r\n    <Function_Name>接收通知</Function_Name>\r\n    <Function_URL>http://221.194.113.163:6611/base-server/app?sys=business_bg&path=/oa/notice/listReceiveNotice</Function_URL>\r\n    <User_ID>8E67AA00-2980-4B60-A802-7C6FB5BAAA15</User_ID>\r\n    <User_Token>ST_WS_SSO_3b5ee2cc-a357-4193-a12d-282f759bf440</User_Token>\r\n    <Msg_Type>0</Msg_Type>\r\n    <Msg_Num>0</Msg_Num>\r\n  </MSG_RenRenTong>\r\n</ArrayOfMSG_RenRenTong>","statusCode":200,"code":3,"msg":"数据类型错误"}
复制代码


如果我没记错的话,在苹果里面\r\n貌似是不可以的,至少我之前试过JSON是不可以的。。。。。
167
帖子
6
勋章
1万+
Y币
残风落叶几时休 发表于 2017-2-28 09:09
如果我没记错的话,在苹果里面\r\n貌似是不可以的,至少我之前试过JSON是不可以的。。。。。 ...

调用的是webservice,返回的标准xml类型数据
周枫 发表于 2017-2-28 09:13
调用的是webservice,返回的标准xml类型数据

我之前也是调用的WebService,我不记得是返回了“\”还是“/”,然后安卓是好的,苹果就崩了。。
167
帖子
6
勋章
1万+
Y币
残风落叶几时休 发表于 2017-2-28 09:16
我之前也是调用的WebService,我不记得是返回了“\”还是“/”,然后安卓是好的,苹果就崩了。。 ...

我刚才示例写错了,返回xml类型数据是不用json解析,直接返回数据进行操作就可以,我重新写了一下问题中返回的数据
28
帖子
1
勋章
1万+
Y币
api.ajax的dataType参数只有json和text取值,没有xml,所以你传xml默认应该是按照返回json处理,所以安卓这里处理是有问题的,应该返回数据类型错误才对。你传text就没事了。
167
帖子
6
勋章
1万+
Y币
技术咨询-Kenny 发表于 2017-2-28 09:46
api.ajax的dataType参数只有json和text取值,没有xml,所以你传xml默认应该是按照返回json处理,所以安卓这 ...

正解,非常感谢,改成text类型就正确了,非常感谢~~
我之前以为是像jq一样有其他类型了
您需要登录后才可以回帖 登录

本版积分规则