uni-app 苹果真机调试调用ajax访问出错了

uni-app 苹果真机调试调用ajax访问出错了

产品分类:

HbuilderX

PC开发环境操作系统:

Windows

PC开发环境操作系统版本号:

win10专业版

HBuilderX版本号:

3.0.7

开发环境 版本号 项目创建方式
Windows win10专业版 HbuilderX

App下载地址或H5网址:

http://zensho.webehr.cn/ios.rar

示例代码:

//获取页面翻译
function GetPageFaceByKey(root, pagename, kyinfo) {
    var strRt = "";
    var lg = "zh_cn";

    var i = 0;
    $.ajax({
        url: root + "XML/PageFace_" + lg + ".xml",
        dataType: 'xml',
        type: 'GET',
        async: false, //不要异步,否则取不到值
        timeout: 5000,
        error: function (xml) {
            console.log(root + "XML/PageFace_" + lg + ".xml" + JSON.stringify(xml));
            strRt = "fuction error";
        },
        success: function (xml) {
            $(xml).find("page").each(function (i) {
                if ($(this).attr("name") == pagename) {
                    strRt = $(this).children(kyinfo).text();
                }
            });
        }
    });
    return strRt;
}

操作步骤:

这个方法在苹果真机调试时出错:NetworkError A network error occurred

$.ajax({
    url: "XML/PageFace_zh_cn.xml",
    dataType: 'xml',
    type: 'GET',
    async: false, //不要异步,否则取不到值
    timeout: 5000,

预期结果:

苹果调试真机是可以正常访问xml文件

实际结果:

苹果真机调试出错了

bug描述:

之前用hbuilder调试苹果真机都是正常。最近不知道是否是换了hbuilderx的缘故不(把hbuilder的代码复制一份用hbuilderx打开后使用),发现调试苹果真机时读取程序报的xml时出错(以前都正常的)–出错信息及部分关键代码见附件,附件app到登录页就会报“fuction error”页就是代码的function GetPageFaceByKey(root, pagename, kyinfo) {里的$.ajax(请求出错了(错误信息及调试时的值见图片红色标准部分),通过在线方式发布的app见下面链接。我把app的文件改为rar。然后打开看到里面是打包进去那个PageFace_zh_cn.xml文件了 还请帮看下哪里出了问题。另外的配置文件见附件.程序包目录结构见附件(之前打包好的app可以正常使用)。苹果市场发布下面在线打包的app时的拒绝信息(定位描述的3个描述都在配置文件里加好的)

image image image image image image


更多关于uni-app 苹果真机调试调用ajax访问出错了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 苹果真机调试调用ajax访问出错了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


从描述和截图来看,问题主要出在iOS真机调试时XML文件访问失败。以下是关键分析点:

  1. iOS安全策略问题:iOS对本地文件访问有严格限制,建议使用uni-app提供的原生API替代jQuery.ajax。可以改用uni.request或uni.downloadFile。

  2. 文件路径问题:iOS真机环境下路径处理与浏览器不同,建议使用绝对路径或uni-app的相对路径写法:

url: '/static/XML/PageFace_zh_cn.xml'
  1. 同步请求问题:iOS对同步请求支持较差,建议改为异步请求并配合Promise/async-await重构代码。

  2. XML解析问题:uni-app环境下建议使用DOMParser替代jQuery的XML解析:

let parser = new DOMParser();
let xmlDoc = parser.parseFromString(res.data,"text/xml");
回到顶部