如何在连接到 API(在 Yii 中)的移动应用程序(cordova)上启用跨域资源共享

Posted

技术标签:

【中文标题】如何在连接到 API(在 Yii 中)的移动应用程序(cordova)上启用跨域资源共享【英文标题】:How to enable Cross-Origin Resource Sharing on my mobile app (cordova) that hooks up to an API (in Yii) 【发布时间】:2014-10-09 03:29:26 【问题描述】:

我在本地 Web 环境中实现了一个移动 cordova 应用程序(来自另一个外部开发人员),该应用程序与我开发的 RESTful API 系统结合使用。

我正在尝试登录,这会将 JSON 请求与用户名和密码一起传递给我的 API,并且基本上会返回响应。

在 Mozilla Firefore 中,我在控制台日志中得到以下响应:-

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://mystickers.local/myStickersApi/V1/appLogin.
This can be fixed by moving the resource to the same domain or enabling CORS.

谁能提供启用跨域请求共享的最佳/最简单方法,我的 API 是使用 Yii 1.xx(例如 php)开发的,而移动应用程序是使用 Cordova 框架(html5/CSS 和 javascript 的组合)开发的)。

【问题讨论】:

【参考方案1】:

在 json 内容被回显之前,我将以下代码块添加到我的 API 中

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
    header("Access-Control-Allow-Headers: Authorization");

现在似乎可以工作了:)

【讨论】:

救了我的命!!谢谢 @MaycowMoura 我认为挽救你的生命可能有点戏剧性,但我很高兴代码的 sn-p 帮助了你我从这个站点获得了足够的帮助,并且很高兴帮助其他人作为回报跨度> 【参考方案2】:
 <?php
 header("Access-Control-Allow-Origin: *");

【讨论】:

您能否为这个答案提供更多细节?

以上是关于如何在连接到 API(在 Yii 中)的移动应用程序(cordova)上启用跨域资源共享的主要内容,如果未能解决你的问题,请参考以下文章

为啥在连接到 mailchimp API 3.0 时出现 401 错误

如何在连接到远程系统的设备上部署和执行应用程序?

如何在连接到 USB 时启动我的应用程序?

在连接到网络音频 api 的音频元素上设置播放速率

iPhone - 数据 URI(css 背景图像)仅在连接到 WIFI 时有效

如何在连接到局域网的其他电脑上使用SQL Server数据库运行桌面应用程序?