You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova Framework7中app.request函数iOS报错问题咨询

解决Framework7 app.request在iOS端抛出CredStore错误且不执行错误函数的问题

这个问题我之前帮开发者排查过类似的,Error=-25300其实是iOS钥匙串的errSecItemNotFound错误,意思是系统尝试从钥匙串里查找匹配的认证凭证但没找到。虽然看起来是个日志错误,但有时候会干扰Framework7的app.request正常执行,尤其是错误回调不触发的情况。下面给你几个针对性的解决步骤:

1. 关闭withCredentials配置

Framework7的app.request默认可能开启了withCredentials,iOS会自动尝试从钥匙串获取对应域名的认证信息(比如Cookie、证书),如果没有匹配的凭证就会抛出这个错误。你可以显式关闭这个选项试试:

app.request({
  url: 'https://apps.sample.co.in/your-api-endpoint',
  method: 'GET',
  withCredentials: false, // 关键:关闭凭证自动携带
  success: function(data) {
    // 处理成功逻辑
  },
  error: function(xhr, status) {
    // 现在应该能触发错误回调了
    console.log('请求错误:', status);
  }
});

2. 检查HTTPS证书合法性

iOS对HTTPS证书的要求比Android严格很多:

  • 确保你的域名使用的是受信任的CA颁发的有效证书,自签名证书或者过期、域名不匹配的证书都会触发这类错误。
  • 如果是测试环境必须用自签名证书,你可以在Framework7的全局配置里暂时关闭证书校验(仅测试用,生产环境禁止):
var app = new Framework7({
  ajax: {
    rejectUnauthorized: false, // 跳过证书校验
    xhrFields: {
      withCredentials: false
    }
  },
  // 其他Framework7配置
});

3. 配置iOS ATS(App Transport Security)

iOS的ATS会限制非安全的网络请求,你需要在项目的Info.plist文件里添加对应域名的例外配置,允许其通过ATS检查:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>apps.sample.co.in</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/> <!-- 仅测试环境用,生产环境建议移除 -->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.2</string>
    </dict>
  </dict>
</dict>

4. 用原生XHR测试排查

如果上面的方法都没解决,你可以用原生XMLHttpRequest测试请求,确认是不是Framework7的封装问题:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://apps.sample.co.in/your-api-endpoint');
xhr.withCredentials = false;
xhr.onload = function() {
  if (xhr.status >= 200 && xhr.status < 300) {
    console.log('请求成功:', xhr.responseText);
  } else {
    console.log('请求失败,状态码:', xhr.status);
  }
};
xhr.onerror = function() {
  console.log('网络错误触发');
};
xhr.send();

如果原生XHR能正常触发错误回调,那问题大概率出在Framework7的app.request配置上,再回头检查全局ajax配置。

内容的提问来源于stack exchange,提问作者Dhananjayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:35:23