超时 AJAX 请求 Cordova 5
Posted
技术标签:
【中文标题】超时 AJAX 请求 Cordova 5【英文标题】:Timeout AJAX Requests Cordova 5 【发布时间】:2015-10-10 19:18:17 【问题描述】:以前工作的 cordva 项目在设备上运行时不再能够通过 AJAX 检索数据,尽管相同的代码在 Ripple 模拟器中工作。我添加了cordova-plugin-whitelist,现在请求立即超时,错误消息为空。还有别的事吗?
【问题讨论】:
【参考方案1】:许多常见的白名单问题的修复
替代方法是这个快速修复——但要知道这个快速修复消除了对white-list
的所有需求。这会创建一个您可能不想绕过的security issue。
快速修复将此添加到您的 config.xml
以供 PHONEGAP BUILD ONLY<preference name="phonegap-version" value="3.7.0" />
长答案是这样的:
来自Top Mistakes by Developers new to Cordova/Phonegap,您已点击:
#6 没有为你的编译器设置“phonegap 版本” #7 没有为你的插件设置“版本” #10 不在 config.xml 中添加新的“白名单”和“白名单插件”参数。#6 & #7
使用 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一系列级联错误。
幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:
Cordova/PhoneGap 版本混乱http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
#10
这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本是 4.0.0 之前的版本,比如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。 p>
需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划和计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。
此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。 根据您的使用情况和您使用的Phonegap 版本,CSP 需要进入您使用的每一个html 页面,就像您必须等待'deviceready' 一样。但是,在某些情况下根本不需要它。文档让一些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。
相关链接
Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单
Cordova Whitelist Guide Phonegap Whitelist Guide Phonegap Build Whitelist Guide
【讨论】:
设置特定版本,现在可以使用。我实现了版本 4.x 请求完整的网络访问权限,而 5.x 没有。谢谢家人。以上是关于超时 AJAX 请求 Cordova 5的主要内容,如果未能解决你的问题,请参考以下文章
升级到 Cordova 5.0 + cordova-android@4.0 后 Ajax 请求失败
ajax 请求上的 Cordova 升级和 jQuery 错误
Phonegap Cordova Ajax 请求 404(未找到)错误