【问题标题】:Ionic proxy works on ionic serve, not on ios simulator or device离子代理适用于离子服务,而不适用于 ios 模拟器或设备
【发布时间】:2016-02-22 04:27:42
【问题描述】:

我的 ionic 应用程序中有一个简单的 Web 服务...它连接到远程服务器以执行简单的任务。

代理在 ionic 中设置如下:

  "proxies": [{
     "path": "/api",
     "proxyUrl": "http://example.com/api"
   }]

并且调用是对“/api”的。这些在 localhost 浏览器中正确解析为http://example.com/api(使用离子服务)。

但在xcode中,url被解析为:

file:///api

我找不到任何关于此的具体内容。如何显示我正在调用 ios?

【问题讨论】:

标签: ios xcode cordova ionic


【解决方案1】:

这是预期的操作。 ionic CLI 代理仅用于 ionic CLI 服务或运行命令。更多内容:http://blog.ionic.io/handling-cors-issues-in-ionic/

file:///api url 不会触发 Angular 浏览器 CORS pre-flight OPTIONS 调用,所以你应该没问题。

您遇到的任何其他 CORS 问题都在服务器端。

【讨论】:

    【解决方案2】:

    我在 Android 设备上运行时遇到了同样的问题,解决方案很简单,请注意这里是我们用来处理 CORS 问题的代理,这只是桌面浏览器的问题,所以在使用离子服务我们需要代理,我们不需要为其他设备使用代理。 在为任何目标平台构建时,我在服务中使用了以下条件来处理此问题,而无需进行任何进一步的代码更改。

    var APIUrl = '/myproxies';
    if (this.platform.is('core') == true){
        APIUrl = '/myproxies';
    }else{
        APIUrl = 'http://api.sample.com/SomeSampleAPIProvider';
    }
    this.http.get(APIUrl+"/Json").map(res => res.json()).subscribe(
        data => {.....
    

    可以参考这个link了解this.platform的使用细节

    【讨论】:

    • 对于信息,“核心”对我不起作用。我使用'mobileweb' :)
    • 这不是 ios 的解决方案。代理在 ios 中不起作用。
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多