CORS和phonegap应用程序

jcm*_*jcm 42 cross-domain cors cordova

phonegap应用程序是否需要进行任何CORS更改(例如设置Access-Control-Allow-Origin:*)?我有一个在Heroku上托管的宁静API,并且想知道我是否需要设置此标头以便我的phonegap应用程序调用该服务?

我在想,因为phonegap应用程序实际上并不是在域上托管,所以不需要CORS,我不会遇到任何跨域问题?

如果有人可以向我解释为什么会这样或者不是这样的话会很棒.

小智 28

PhoneGap你可以直接XHR到远程服务器,它应该"正常工作".跨域策略不适用于PhoneGap(出于各种原因,主要是因为您的应用实际上是在文件上运行:// URI on-device).

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

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

  • 请记住,此白名单不适用于通过inAppBrowser-Plugin完成的内容.白名单只能在主要的Cordova webview中使用! (3认同)
  • 我想知道为什么[这个答案](http://stackoverflow.com/a/3744697/399414)说"运行文件的脚本://对CORS的支持有限",如果XHR到远程服务器应该"正常工作". (2认同)

Kev*_*nry 5

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

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