在phonegap中访问控制允许原点

时间:2014-05-19 17:18:15

标签: cordova accesscontrolexception

我决定开发一个使用公共API的应用程序,该API为城市中的公共汽车和地铁提供时间表。

我决定使用HTML5开发这个应用程序,以便通过使用像phonegap这样的东西,我可以部署到多个平台。

在开发过程中,我发现由于 xmlhttprequest无法加载否,我无法从API访问JSON响应否请求资源上存在“Access-Control-Allow-Origin”标头

所以我决定使用普通的提供者网站空间作为我发送请求的php函数的桥梁,并且能够从该API服务获得响应并将我的HTML页面发送回JSON结果。

我有两个问题,其中还有一个起始页面或线索: 1)如果我用本机代码(java和ObjC)开发应用程序,那么Access-Control-Allow-Origin的问题也会出现?

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

3 个答案:

答案 0 :(得分:3)

  

1)Access-Control-Allow-Origin的这个问题就是这个问题   如果我用本机代码开发应用程序(java和   ObjC)?

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

  

2)如果HTML5和javascript是由phonegap编译的,我会的   仍然无法访问该API服务,我仍然会有相同的   问题,我还是要使用php桥吗?

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

答案 1 :(得分:0)

可以将网址列入白名单,请参阅:http://docs.phonegap.com/en/3.0.0/guide_appdev_whitelist_index.md.html

答案 2 :(得分:0)

我尝试使用外部API(超市api)时遇到了类似的问题,当我实际上将我的代码上传到phonegap版本然后将其下载到设备上时,http请求正在解析。