【问题标题】:AJAX from PhoneGap - Cross-Domain Concerns?PhoneGap 的 AJAX - 跨域问题?
【发布时间】:2013-10-01 03:37:01
【问题描述】:

我想通过 AJAX 调用与来自 PhoneGap 应用程序的后端服务器进行通信。

有没有办法将 PhoneGap 应用程序与我拥有的域相关联,这样请求就不必全部使用 CORS 或 JSONP?

如果不是,对于来自 PhoneGap 的这些 AJAX 请求,最好使用 CORS 还是 JSONP?

【问题讨论】:

  • 构成您的应用程序的 HTML 代码不会“托管”在任何服务器上,而是会被打包为真正的原生应用程序,因此不存在“跨域”问题。出于安全考虑,有一个白名单会阻止从您的应用向外部发出的请求 - 您必须将后端服务器添加到此白名单中。

标签: ajax cordova cross-domain


【解决方案1】:

您无需担心来自移动设备的跨域请求。他们不知何故无关紧要。您的设备可以很好地向任何站点的 JSON 服务发出请求。但是,如果您想在构建和部署到设备之前在 PC 上进行本地测试,则需要使用 JSONP。出于这个原因,我总是使用 JSONP。

【讨论】:

  • 我认为如果您在没有 JSONP 的机器上托管服务器,您可以在本地进行测试。像节点服务器或 Uniserver 这样的东西可以工作,你可以启动一个 HTTP 服务器来托管你的 /www/ 文件夹并从应用程序向你的 IP 发出请求 - 只需更改 href 属性。
  • @MBillau 你是对的。我应该说,如果您想在不更改代码的情况下进行本地测试,那么您需要 jsonp。
  • 我想知道您是否可以将所有链接保留为相对 URL,在服务器上托管项目的 /www/ 文件夹,并更改应用程序中的入口点(例如,在 AndroidManifest.xml 中)到IP地址...这样您在测试时只需更改一个URL...
  • 或者你可以只使用 JSONP 并收工 :)
猜你喜欢
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多