从本地文件加载的 WKWebView 访问安全端点
Accessing secure endpoint from WKWebView loaded from local files
所以我们正在开发一个 iPhone 应用程序(iOS 9+,而不是 8),我们使用 WKWebView 和本地文件来启动它。为了将数据导入应用程序,我们计划使用一种安全服务,该服务也将处理身份验证,并且认为 CORS 是实现此目的的方法。
然而,从文件系统加载文件会将 HTTP 请求中的来源设置为 null
,这在我们还想发送 cookie(用于身份验证)时是不允许的。
所以我的问题是:
- 我们可以在 WKWebView 中设置一个原点,用
<a href="https://acme.server.net" rel="noreferrer">https://acme.server.net</a>
之类的东西覆盖 null
吗?
- 其他人(你)在做什么?
- 我们是否应该考虑做 CORS 以外的其他事情? (JSONP 不是一个选项)。
您可以在 iPhone 上创建一个本地网络服务器并从中加载您的文件。这样 origin 就不会为空,您可以使用 CORS 连接到您的服务器。
我发现 GCDWebServer 很容易使用。
就我个人而言,我宁愿使用 HTML5 AppCache 或 ServiceWorkers 来创建本地应用程序缓存,而无需 CORS,但 WKWebView 不支持这些,据我所知,您被迫使用网络服务器方法
所以我们正在开发一个 iPhone 应用程序(iOS 9+,而不是 8),我们使用 WKWebView 和本地文件来启动它。为了将数据导入应用程序,我们计划使用一种安全服务,该服务也将处理身份验证,并且认为 CORS 是实现此目的的方法。
然而,从文件系统加载文件会将 HTTP 请求中的来源设置为 null
,这在我们还想发送 cookie(用于身份验证)时是不允许的。
所以我的问题是:
- 我们可以在 WKWebView 中设置一个原点,用
<a href="https://acme.server.net" rel="noreferrer">https://acme.server.net</a>
之类的东西覆盖null
吗? - 其他人(你)在做什么?
- 我们是否应该考虑做 CORS 以外的其他事情? (JSONP 不是一个选项)。
您可以在 iPhone 上创建一个本地网络服务器并从中加载您的文件。这样 origin 就不会为空,您可以使用 CORS 连接到您的服务器。
我发现 GCDWebServer 很容易使用。
就我个人而言,我宁愿使用 HTML5 AppCache 或 ServiceWorkers 来创建本地应用程序缓存,而无需 CORS,但 WKWebView 不支持这些,据我所知,您被迫使用网络服务器方法