CORS和phonegap应用程序

phonegap应用程序是否需要任何CORS更改(如设置Access-Control-Allow-Origin:*)才能正常工作? 我有一个在Heroku上托pipe的restful API,想知道是否需要设置这个头文件,以便我的phonegap应用程序调用该服务?

我在想,因为phonegap应用程序不是真的托pipe在一个域,那么CORS不是必需的,我不会得到任何跨域问题?

如果有人能向我解释为什么这是或不是这种情况,那将是非常好的。

PhoneGap你可以直接到远程服务器XHR,它应该“只是工作”。 跨域策略不适用于PhoneGap(基于各种原因,基本上是因为您的应用程序本质上运行在文件:// URI on-device上)。

请注意,您必须为您的应用程序设置白名单才能访问这些外部域。 请检查这个链接:

http://docs.phonegap.com/en/1.8.0rc1/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

尽pipeHTML文件托pipe在本地( file:// )并且正在访问Web域,但是默认的Cordova(PhoneGap)平台都不需要CORS。

但是,在iOS上,如果通过cordova-plugin-wkwebview-engine从UIWebView切换到较新的WKWebView ,则必须实现CORS。

是的你必须在托pipe你的API的服务器上激活CORS。 我在iOs上运行Phonegap App。 我的应用程序从Apache上的服务器API请求json。 我激活服务器上的CORS来获取数据,否则我在我的应用程序中什么都没有,没有错误,没有数据。

请注意,configuration文件中的访问参数允许您过滤应用程序有权查询的域,但对服务器的权限不起任何作用。

从cordova 5开始,您将需要添加白名单插件

https://github.com/apache/cordova-plugin-whitelist

在config.xml中添加

 <!-- Don't block any requests --> <access origin="*" />