【问题标题】:Ionic http get from non-ssl websites with CORS settingsIonic http 从具有 CORS 设置的非 ssl 网站获取
【发布时间】:2020-07-11 19:07:04
【问题描述】:

我的网站启用了 CORS。我可以使用 Postman 检查我的链接,它运行良好。

当我从浏览器中使用这些链接时,我正在开发的 Ionic 应用程序也可以正常工作。我在安卓手机上运行应用程序的那一刻,它停止工作。以下是我收到的错误消息。

    {
      "headers": {
        "normalizedNames": {},
        "lazyUpdate": null,
        "headers": {}
      },
      "status": 0,
      "statusText": "Unknown Error",
      "url": "http://subdomain.mydomain.com/DataServer/Country",
      "ok": false,
      "name": "HttpErrorResponse",
      "message": "Http failure response for http://subdomain.mydomain.com/DataServer/Country: 0 Unknown Error",
      "error": {
        "isTrusted": true
      }
    }

请注意,我试图从中获取数据的站点是 http,而不是 https。当我尝试从 https 获取数据时,它可以工作。我试图从以下获取数据

https://jsonplaceholder.typicode.com/todos/1

代码

 this.http.get('https://jsonplaceholder.typicode.com/todos/1').subscribe((response) => {
      alert("Success: " + JSON.stringify(response));
    }, (err) => {
      alert("Error: " + JSON.stringify(err));
    });

问题看起来像 Ionic (Cordova) 正在阻止来自 http 网站的 http.get 请求..(非安全)。有没有办法覆盖它?

【问题讨论】:

  • 你使用的是android 28+版本吗?
  • YES API 版本是 29

标签: cordova ionic-framework http-get cordova-android


【解决方案1】:

不是cordova问题,问题出在你的版本上,如果你在低于28的版本上测试它会正常运行,但是对于高于28的版本,出于安全原因,如果不是https,android会禁用任何请求,以便为了解决这个问题,您可以从任何 ssl 站点获取免费的 ssl 并将其放在您的域中,或者将其放在您的域之前的网站,例如 https://sslspecificsitename?site=http://yoursite.com。所以它的作用是伪造android请求,请求是https,然后重定向并发出请求到你的网站。但是第一个更好,因为您在链接前面编写的任何网站都可能被其所有者停止或删除,因此您的应用程序会停止运行,所以去获取免费的 ssl。

【讨论】:

  • 我在服务器上添加了一个 SSL 证书,它成功了!!!谢谢你..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 2016-03-31
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
相关资源
最近更新 更多