我一直在研究这个问题,但找不到令我满意的答案。
我非常了解适用于标准 Web 浏览器中网站的相同来源策略。当我开始开发一个移动应用程序时,我的问题出现了,该应用程序使用本机Web视图并使用jQuery的.load
方法加载网站内容。通常在标准 Web 浏览器中,我会收到 XHR 加载错误。
那么,关于本机应用和跨源策略的规则是什么?
Robot Woods绝对走在正确的轨道上。在处理本机应用程序时,从某种意义上说,您是从 file://而不是从 https://发出请求。由于您不是通过 HTTP 协议发出请求,因此相同的规则不适用。从本机移动应用程序发出请求时,您应该毫无问题地向任何域发出请求。
您只需要将域添加到PhoneGap/Cordova中的白名单中,前提是您将让整个页面替换Web视图中的正常内容,这通常不会发生(您通常只是从服务器请求块中的数据,而不是执行window.location更改)。