Cordova 访问源站以限制站点,但在连接到特定站点时允许所有操作

Cordova 访问源站以限制站点,但在连接到特定站点时允许所有操作,cordova,intel-xdk,Cordova,Intel Xdk,我使用的是Intel XDK,但我认为这是一个更一般的问题,适用于Cordova和CORS 我想将我的应用程序限制在我的域中: 但是,我的应用程序使用Google+登录。因此,我还需要: 但是,谷歌还加载了一些其他网站,这意味着我还需要包括一些其他网站,例如: <access origin="https://accounts.youtube.com"/> <access origin="https://ssl.gstatic.com"/> <access origi

我使用的是Intel XDK,但我认为这是一个更一般的问题,适用于Cordova和CORS

我想将我的应用程序限制在我的域中:

但是,我的应用程序使用Google+登录。因此,我还需要:

但是,谷歌还加载了一些其他网站,这意味着我还需要包括一些其他网站,例如:

<access origin="https://accounts.youtube.com"/>
<access origin="https://ssl.gstatic.com"/>
<access origin="https://fonts.gstatic.com"/>
问题是,谷歌登录可能会在任何时候改变,以包括其他网站,这将导致我的应用程序中断。现在,我想谷歌登录有它自己的CORS保护,所以我可以允许它加载任何东西


有没有一种说法像‘只允许我的域和这个其他域,但允许连接到其他域accounts.google.com时加载的所有内容’?或者可能:“仅允许我的域和其他域,但对于其他域,依赖其他域强制实施的CORS控制”?

是的,这是您需要执行的Cordova配置。在XDK中,可以通过转到“项目”选项卡的“生成设置”部分来完成。您将看到一个名为“域列表”的字段,您可以在其中输入要限制应用程序访问的域列表。它可能被设置为“*”——这意味着整个世界。如果您将鼠标悬停在右侧的i图标上,它将为您提供一个指向Cordova文档的链接,该文档描述了如何指定域的白名单


请注意,在XDK尚不支持的Cordova CLI 5中,这将再次更改为稍微不同的系统。当XDK确实支持该版本的Cordova系统时,“设置”对话框可能会更改,但基本思想仍然是一个白名单域列表。

是的,但我如何允许Google加载的所有内容,例如ssl.gstatic.com,而不明确说明。否则,如果谷歌改变,我的网站就会崩溃。根据最后一段中的问题,如果您事先知道Google加载的所有内容都是*.Google.com,您可以使用该符号。然而,如果你不知道谷歌网站将加载什么,你唯一的选择就是在域名列表中使用一条*记录。有关更多详细信息,请参阅Cordova文档: