在开发Cordova / Ionic混合应用程序时如何处理Cross Origin问题

时间:2015-06-22 08:21:12

标签: android angularjs web-services cordova drupal-7

我看到一些与我的问题类似的问题,但他们似乎没有答案。我正在使用使用Cordova / Phonegap的离子框架开发移动应用程序(或应用程序)。因此,它是一个混合应用程序,因为它将在设备上的浏览器内运行,例如Android设备。

我有一个Drupal站点,它有一个名为Services的模块,它为Drupal站点上的数据公开了一个API。在客户端,我试图调用该API并获取数据。我可以使用Chrome REST客户端从Drupal api获取数据。但是,当我运行命令“ionic serve”在某个端口的localhost上运行服务器时,我收到与跨浏览器问题相关的错误。哦,我在前端使用AngularJS,离子似乎更喜欢。 Ionic使用Cordova。该应用程序将打包为Java应用程序,但ionic / cordova在嵌入式浏览器中运行,带有HTML / JS / CSS。

NG Book on Angular讨论了CORS处理。我是否还必须配置Drupal以接受跨源请求?有一个CORS模块。在这种情况下,我可以访问客户端和服务器。使用Drupal的Services模块我配置了一个api。然而,仅凭这一点似乎还不够。该模块没有任何与CORS相关的设置。

是否可以使用客户端代码完全处理这一点,特别是Angular $ http服务或$ get服务?
或者有一个单独的Drupal CORS模块。配置该模块对我来说有点混乱。文档内容为

“为CORS启用的路径和相应域的列表。多个条目应用逗号分隔。按管道分隔每行输入一个值,按此顺序:”

内部路径

访问控制允许来源。用于回显Origin标头。

接入控制允许的方法

接入控制允许接头

接入控制允许证书

示例:

* | http://example.com

api | http://example.com:8080 http://example.com

API / * |,https://example.com

api / * || POST | Content-Type,Authorization | true

上述示例中没有一个包含“Access-Control-Allow-”字样,这让我有点困惑。也许我需要的只是 API / * | http://example.com

任何建议都会有所帮助。 谢谢, 布鲁斯

0 个答案:

没有答案