XMLHttpRequest 和 Phonegap ... 是不是同源策略?

Posted

技术标签:

【中文标题】XMLHttpRequest 和 Phonegap ... 是不是同源策略?【英文标题】:XMLHttpRequest and Phonegap... Same Origin Policy or not?XMLHttpRequest 和 Phonegap ... 是否同源策略? 【发布时间】:2013-07-20 20:41:13 【问题描述】:

我还是 Phonegap 的新手,而且我已经使用 android SDK 工作了几天。至少我想做一个XMLHttpRequest 从我的服务器获取数据。 我之前知道同源策略,我问自己,这应该如何与“本机应用程序”一起使用。

我在互联网上搜索了一些主题,人们告诉其他人,Phonegap 上没有同源策略,因为它使用file:// 协议,另外还有一个域白名单在它的config.xml

另一方面,有很多人对 XHR 有问题,其他人告诉他们,这是因为同源政策......

好吧,我很困惑,但我在常规网站上使用了我的 - 工作 XMLHttpRequestsn-p 并将其放入 Phonegap 应用程序中。我尝试了虚拟设备,但我的请求不起作用。

现在我问自己一些问题:

谁是对的? Phonegap 是否有同源政策?

如果是:

该域白名单有什么功能?

仍然获取服务器数据的最佳方式是什么?

【问题讨论】:

您是否找到了解决方案和好的答案。我们认为是的,混合 phonegapp 应用程序有 SOP。是的,现在有办法让它发挥作用。还是您找到了解决方案? 【参考方案1】:

是的,人们是正确的,同源策略仅在 web 应用而不是混合 phonegap 应用中需要。

您需要检查您的域白名单,只需在res 中的config.xml 中检查它 --> xml 文件夹。

为了访问 xml Web 服务,您需要确保您的 soap 消息格式正确。尝试找出确切的错误。

【讨论】:

首先感谢您的回复!我的域白名单告诉我 所以应该可以访问所有网站?所以我会看看我的代码... ;) 我终于发现,由于我在本地网络服务器上的自签名证书,我的请求不起作用。使用 http 而不是 https 让它工作! 嘿@Sheetal 我对此感到困惑.. 我也无法调用我的Webservice.. :( 需要一些好的例子,谷歌搜索会让我感到困惑.. 服务器上的自签名证书无法帮助应用程序进行 Web 服务调用,因为它无法手动提供所需的凭据。它必须是正确签名的证书,无需人工干预。 我有类似的问题,我不想向blabla.com 发出 XHR (http) 请求,但我遇到了 CORS 问题,因为我有 SOP 问题。在我看来,域白名单与 CORS / SOP 问题无关。正确的?有人可以帮忙吗?

以上是关于XMLHttpRequest 和 Phonegap ... 是不是同源策略?的主要内容,如果未能解决你的问题,请参考以下文章

在 Phonegap 中解析查询返回错误 100 XMLHTTPRequest failed

Web 服务和 phonegap:最佳实践

PhoneGap/Cordova、波纹仿真器、CORS 和 JSONP

煎茶+PhoneGap

无法使用 WKWebView 通过 XMLHttpRequest 加载音频文件

phonegap ios app xhr 响应为空