我在离子 2 中遇到了 CORS 的问题。当我点击登录端点时,我从iOS build on a phone
收到以下 CORS 错误
[Error] Failed to load resource: Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
我没有从应用程序的Android版本中看到此问题。是否可以在 Ionic 应用程序中启用设置或内容来解决 CORS 问题?
提前致谢
你必须在ionic.config中设置代理.js像这样:
{
"name": "*******",
"app_id": "******",
"v2": true,
"typescript": true,
"proxies": [
{
"path": "/api",
"proxyUrl": "http://localhost:8080"
}
]
}
这是Ionic提供的示例项目,其中包含代理设置和返回静态数据的小型服务器。https://github.com/mhartington/V2Proxy
仅解决方法 - 不是一个完美的解决方案
我遇到了同样的问题,我的带有后端 ASP.net ionic 3应用程序运行良好,它不适用于IOS(苹果手机x - IoS 11模拟器(。
终于我得到了一个解决方案
溶液
我更改了离子应用程序的web view
选项。
首先,打开配置.xml并添加以下属性
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
删除所有插件和平台,然后运行或构建您的应用程序
就是这样
此网址中给出的详细步骤
在工作中,我们遇到了同样的错误,只发生在iPhone中,经过大量研究,我们发现这个问题指的是服务器(API(,而不是移动应用程序。
我们的 API 是一个 ASP.NET 应用程序,通过 IIS 公开。我不知道你的环境是否相同,但基本上解决我们问题的是:
在服务器上,在 IIS
中,在我们应用程序的应用程序池中,我们将 Managed Pipeline Version
属性从 Classic
更改为 Integrated
,问题就解决了。
我也遇到了这个问题。服务器不是本地托管的,但它们也没有启用 CORS。问题是HTTP请求将源设置为localhost
,而它应该file://
。
有人知道如何避免这种情况吗?