Cordova CORS和phonegap应用程序

Cordova CORS和phonegap应用程序,cordova,cross-domain,cors,Cordova,Cross Domain,Cors,phonegap应用程序是否需要任何CORS更改(如设置访问控制允许源代码:)才能工作?我在Heroku上托管了一个restful API,我想知道是否需要设置这个头以便我的phonegap应用程序调用该服务 我在想,因为phonegap应用程序实际上不是托管在域上,所以不需要CORS,我也不会遇到任何跨域问题 如果有人能向我解释一下为什么会这样或不是这样,那就太好了。PhoneGap您可以直接将XHR发送到远程服务器并使用它 应该“只是工作”。跨域策略不适用于PhoneGap (由于各种原因,

phonegap应用程序是否需要任何CORS更改(如设置访问控制允许源代码:)才能工作?我在Heroku上托管了一个restful API,我想知道是否需要设置这个头以便我的phonegap应用程序调用该服务

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


如果有人能向我解释一下为什么会这样或不是这样,那就太好了。

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

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


是的,您必须在承载API的服务器上激活CORS。 我正在iOs上运行Phonegap应用程序。我的应用程序从Apache上的服务器API请求json。 我在服务器上激活CORS以获取数据,否则我在应用程序中什么也得不到,没有错误,也没有数据


请注意,配置文件中的access参数允许您筛选应用程序有权查询的域,但对服务器的权限不做任何操作。

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

在config.xml中添加

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

尽管HTML文件托管在本地(
文件://
),并且正在访问web域,但默认的Cordova(PhoneGap)平台都不需要CORS


但是,在iOS上,如果您从
UIWebView
切换到较新的
WKWebView
via,您确实需要实现CORS。

请记住,此白名单不适用于通过inAppBrowser插件在中完成的工作。白名单只能在Cordova主网络视图中使用!如果远程服务器的XHR应该“正常工作”,我想知道为什么会说“通过file://运行的脚本对CORS的支持有限”。多亏了这篇文章,我的结论如下。它真的会“起作用”。但是,如果服务器上启用了CORS,它将无法工作,因为您无法将“file://”设置为允许的源。windows Phone上仍然存在CORS问题,特别是“浏览器”平台确实需要CORS。不确定是否还有其他平台可以这样做。@Jules:与其他平台不同,
浏览器
不绑定到任何特定的web视图,因此它只取决于您选择使用的web浏览器。假设您谈论的是开发使用,那么在Chrome中禁用相同来源的策略并避免实现CORS就很简单了。这句话在2018年8月仍然有效吗?在我们与客户端登录的集成过程中,移动应用程序得到401,详细信息显示“CORS”错误。服务器团队表示,他们正在其网关上启用CORS,但相信源“file://”是根本原因。帮助:(@mobibob:据我所知,这仍然是事实。在任何情况下,你最好发布一个新问题,指出平台,包括完整的请求和响应标题。cordova plugin add cordova plugin wkwebview file xhr