【问题标题】:Ionic 2 iOS corsIonic 2 iOS 内核
【发布时间】:2017-10-17 08:39:47
【问题描述】:

我在 ionic 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 问题?

提前致谢

【问题讨论】:

    标签: ios ionic2 cors


    【解决方案1】:

    你必须像这样在 ionic.config.js 中设置代理:

    {
      "name": "*******",
      "app_id": "******",
      "v2": true,
      "typescript": true,
      "proxies": [
        {
          "path": "/api",
          "proxyUrl": "http://localhost:8080"
        }
      ]
    }
    

    这是 Ionic 提供的示例项目,其中包含代理设置和返回静态数据的小型服务器。 https://github.com/mhartington/V2Proxy

    【讨论】:

      【解决方案2】:

      仅解决方法 - 不是完美的解决方案


      我运行时遇到了同样的问题,我的 ionic 3 应用程序与 ASP.net 后端运行得很好,它不能与 IOS 一起使用(Iphone x - IoS 11 模拟器)。

      终于有办法了

      解决方案

      我更改了我的 ionic 应用程序的 web view 选项。

      首先,打开 config.xml 并添加以下属性

      <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

      然后删除所有插件和平台,然后运行或构建您的应用程序

      就是这样

      this url中给出的详细步骤

      【讨论】:

        【解决方案3】:

        在工作中我们也遇到了同样的错误,只发生在 iPhone 上,经过大量研究我们发现这个问题是指服务器 (API),而不是移动应用程序。

        我们的 API 是一个 ASP.NET 应用程序,通过 IIS 公开。 不知道你的环境是不是一样,但基本上解决我们问题的是:

        在服务器上,在IIS,在我们应用的应用池中,我们将Managed Pipeline Version属性从Classic改为Integrated,问题就解决了。

        【讨论】:

          【解决方案4】:

          我也遇到了这个问题。服务器不是本地托管的,但它们也没有启用 CORS。问题是 HTTP 请求将源设置为 localhost,而它应该是 file://

          有人知道如何避免这种情况吗?

          【讨论】:

          • 请在评论或新问题中添加其他信息
          猜你喜欢
          • 1970-01-01
          • 2016-10-30
          • 2017-10-03
          • 1970-01-01
          • 2018-04-01
          • 2017-12-11
          • 2018-06-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多