Cordova 访问控制允许phonegap中的源站

Cordova 访问控制允许phonegap中的源站,cordova,accesscontrolexception,Cordova,Accesscontrolexception,我决定开发一个应用程序,它使用一个公共API来提供城市公交车和地铁的时刻表 我决定使用HTML5开发这个应用程序,这样通过使用phonegap之类的东西,我就能够在多个平台上部署 在开发过程中,我发现我无法从API访问JSON响应,因为请求的资源上没有“access Control Allow Origin”(访问控制允许来源)标头,因此xmlhttprequest无法加载 因此,我决定使用一个普通的提供者Web空间作为一个带有php函数的桥梁,我将请求发送到php函数,该函数能够从API服务获

我决定开发一个应用程序,它使用一个公共API来提供城市公交车和地铁的时刻表

我决定使用HTML5开发这个应用程序,这样通过使用phonegap之类的东西,我就能够在多个平台上部署

在开发过程中,我发现我无法从API访问JSON响应,因为请求的资源上没有“access Control Allow Origin”(访问控制允许来源)标头,因此xmlhttprequest无法加载

因此,我决定使用一个普通的提供者Web空间作为一个带有php函数的桥梁,我将请求发送到php函数,该函数能够从API服务获得响应,并将JSON结果发送回HTML页面

我有两个问题,请提供起始页或线索: 1) 若我用本机代码(java和ObjC)开发应用程序,访问控制允许源代码的问题也会出现吗

2) 如果HTML5和javascript由phonegap编译,我仍然无法访问该API服务,我仍然会遇到同样的问题,我仍然必须使用php桥

1) 访问控制允许来源的问题是 如果我用本机代码(java和 ObjC)

不,这是一个只有浏览器才能实现的安全功能

2) 如果HTML5和javascript由phonegap编译,我将 仍然无法访问该API服务,我仍将使用相同的API服务 问题,我仍然必须使用php桥


PhoneGap确实设置了允许您访问所有主机的正确标头。它无法覆盖或修改响应服务器返回的标题。通常API端点设置正确的标头,您应该考虑告诉API所有者,如果他们没有。

< P> >白名单URL S,见:

< P>我试图使用外部API(超市API),当我实际上传代码到PosiGeAP构建并在设备上下载时,我发现了类似的问题。http请求正在解决。

谢谢您的明确回答。因此,这意味着在html5中为这样的服务开发一些东西是无用的,除非您可以直接访问API!。如果我想坚持这个项目,我需要一个服务器来充当桥梁,我可以问你我应该怎么做吗?在普通服务器上购买普通域,购买VPN或专用服务器?你能给我指一下正确的方向吗?无论如何,感谢您的回答。若要在浏览器上调试而不获取访问控制允许源错误,请从浏览器手动执行api调用并保存响应,然后使用这些json文件代替代码中的任何http GET,以便获得一些模拟结果。我使用了一个标志来说明应用程序是处于调试模式还是生产模式,每次对api发出http请求时都会检查这个标志,并使用json响应文件而不是执行http GET。