1. 简短介绍
最近,我们更新了我们的应用程序,只是为了符合 Apple 关于 Apple 签名流程的新规则,但这还不够。
Apple 阻止了我们的发布,因为我们目前没有采用新的 Web 视图 WkWebView。
所以我们决定使用以下插件:
看到XHR的问题太好了,file://请求的问题被新版本修复,但仍然存在一个重要的CORS块。
2. 问题
正如标题所说,我们对服务器执行的每个调用仍然会继续收到错误" 无法加载资源:访问控制-允许不允许源 ionic://localhost...">
3. 我们做了什么
阅读意识,我们将以下过滤器添加到我们的服务器配置 (web.xml( 中
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
在我们的配置中.xml正如指南所描述的那样,我们添加:
<allow-navigation href="ionic://localhost/*"/>
<allow-navigation href="http://localhost*"/>
<content src="index.html" />
<allow-navigation href="*" />
但问题仍然存在。
4. 环境版本控制
- iOS 13.3
- 科尔多瓦 7.1.0
- 离子 v1
- 角度 1.5
那么如何允许应用程序从我们的服务器中提取数据呢?
根据文档,这个web.xml
配置将不起作用:
上述配置启用筛选器,但不会放宽跨源策略。您至少需要添加如下所述的
cors.allowed.origins
初始化参数以启用跨源请求。
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>http://localhost, ionic://ionic</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
文档还url-pattern
设置为/*
而不是*
,但我不确定这是否重要。
您可能需要添加更多配置,具体取决于应用发出的请求类型。