使用 Cordova 10 的应用内 AJAX 无法在 iOS 中运行
Posted
技术标签:
【中文标题】使用 Cordova 10 的应用内 AJAX 无法在 iOS 中运行【英文标题】:In-app AJAX not working in iOS with Cordova 10 【发布时间】:2020-10-06 07:59:50 【问题描述】:我刚刚从 Cordova 8 更新到 Cordova 10。主要是因为 Apple 弃用了 UIWebView。我使用cordova-ios@6.1.1。我为测试目的创建了一个默认的 Cordova 项目。我没有添加任何插件,除了 jQuery 版本 3.5.1 之外没有其他任何东西。我将 AJAX 请求添加到内部应用程序文件 css/index.css (这在 Cordova 8 中工作正常):
function onDeviceReady()
// Cordova is now initialized. Have fun!
console.log('Running cordova-' + cordova.platformId + '@' + cordova.version);
document.getElementById('deviceready').classList.add('ready');
$.ajax(
url: "css/index.css",
success: function (resp)
console.log("load OK");
return false;
,
error: function (xhr, status, exc)
console.log("load fail");
return false;
);
当我运行应用程序时,AJAX 调用失败并显示 status = "error"。请问,有没有人可以建议更改了什么以及如何使这样的 AJAX 调用正常工作?
【问题讨论】:
这能回答你的问题吗? Why is jQuery Ajax not working in Cordova iOS app 是的,就是这样,谢谢。把它作为答案,我会标记它。 【参考方案1】:您需要移动到 WKWebView 并需要使用 cordova-plugin-wkwebview-file-xhr 或 cordova-plugin-ios-xhr 因为文件没有来源并且会因 CORS 失败。
【讨论】:
以上是关于使用 Cordova 10 的应用内 AJAX 无法在 iOS 中运行的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 应用程序正在 Android 应用程序的数据空间上使用 AJAX 保存 DOM 加载的数据
适用于 iOS 的 Phonegap/Cordova 日历插件无响应