【问题标题】:Phonegap: Cannot call remote hosts via HTTPPhonegap:无法通过 HTTP 调用远程主机
【发布时间】:2012-08-10 11:47:26
【问题描述】:

我用 jQuery 和 jQueryMobile 创建了一个 HTML5 网站。

如果我在浏览器中运行它,一切正常。

当我通过 Phonegap 将它部署到 iPhone 模拟器时,它找不到我这样包含的 jQuery 对象 ($):

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

console.log($); // undefined

如果我修改 src 属性,使我的应用程序使用 jQuery 的本地副本,则 jQuery 对象存在:

<script src="lib/jquery.js"></script>

console.log($); // works

但是然后我注意到我的应用程序中的所有 Ajax 调用都不起作用

所以,我假设我的 iPhone 应用程序拒绝与远程主机的 HTTP 连接。

我该如何解决这个问题?


更新:我检查了我的应用在 iPhone 应用中部署的 URL,它看起来像这样:

file:///Users/mobile/Library/Application Support/iPhone Simulator/5.1/Applications/9767E436-B93422-5423-5HLD-1680170C8AC5/MyApp.app/www/index.html

【问题讨论】:

  • 您是否在 HTTPS 上运行您的 Web 应用程序?

标签: javascript jquery iphone ajax cordova


【解决方案1】:

您需要在 Cordova.plist 中指定允许连接的主机

此功能称为Whitelist,可避免您的应用连接到您不想连接的服务器

【讨论】:

  • 是的,成功了!我在 Xode 中打开 Cordova.plist 并将值 *.jquery.com 添加到 ExternalHosts。那行得通。非常感谢!
  • 如果我们在浏览器上查看页面怎么样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多