从具有CORS设置的非SSL网站获取离子http

问题描述 投票:1回答:1

我的网站启用了CORS。我可以使用邮递员检查我的链接,并且它工作正常。

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

    {
      "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请求。(非安全)。有没有方法可以覆盖它?

cordova ionic-framework http-get cordova-android
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.