PhoneGap应用程序是否需要任何CORS更改(例如设置Access-Control-Allow-Origin:*)才能工作?我在Heroku上托管了一个安息的API,想知道我是否需要设置此标题以使我的电话盖申请使用该服务?
?我在想,由于电话盖普应用程序并不是真正托管在域上,因此不需要CORS,而且我不会遇到任何跨域问题?
如果有人可以向我解释为什么会发生或不是这种情况。
phonegap您只能直接xhr到远程服务器,应该"只是工作"。跨域政策不适用于电话盖(由于多种原因,基本上是因为您的应用本质上是从文件中运行://uri on-evice)。
请注意,您必须为应用程序设置白名单访问这些外部域。请检查此链接:
http://docs.phonegap.com/en/1.8.0rc1/guide_whitelist_index.md.md.html#domain whitelist Guide
尽管HTML文件是本地托管的(file://
)并访问Web域。
但是,在iOS上,如果您通过Cordova-Plugin-wkwebview-engine从UIWebView
切换到较新的WKWebView
,则确实必须实现CORS。
是的,您必须激活托管API的HE服务器上的CORS。我正在iOS上运行电话盖上应用程序。我的应用程序从Apache上的服务器API请求JSON。我激活服务器上的CORS以获取数据,否则我在应用程序中什么也没得到,没有错误,也没有数据。
请注意,配置文件中的访问参数使您可以过滤您的应用程序有权查询哪个域,但对服务器的权限没有任何作用。
在Cordova 5起,您需要添加Whitelist插件
https://github.com/apache/cordova-plugin-whitelist
在config.xml中添加
<!-- Don't block any requests -->
<access origin="*" />