设备上也无法在生产环境中建立CORS错误

时间:2019-04-07 08:41:52

标签: angular typescript cors ionic4

我已使用以下CLI构建了Ionic 4应用:

ionic cordova build android --prod

service.ts

  get(): Observable<any> {
   return this.http.get("http://api.openweathermap.org/data/2.5/forecast?lat=52.974431&lon=70.2398363&appid=myapi&units=metric");
  }

为什么仍然会出现CORS错误?

  

在以下位置访问XMLHttpRequest   'http://api.openweathermap.org/data/2.5/forecast?lat=52.974431&lon=70.2398363&appid=myid&units=metric'   来自来源“ http://localhost:8100”的信息已被CORS政策阻止:   响应中“ Access-Control-Allow-Origin”标头的值   当请求的凭据模式为时,不得为通配符'*'   '包括'。发起的请求的凭据模式   XMLHttpRequest由withCredentials属性控制。

据我所知,它应该可以在设备上正常运行,不是吗?为什么它仍在设备上显示http://localhost:8100?根据{{​​3}},它应该可以在设备上正常运行吗?

注意:我使用chrome://inspect/#devices来获取上述错误?

1 个答案:

答案 0 :(得分:2)

最近我遇到了同样的问题,但是我通过在Android和ios设备上使用cordova-plugin-advanced-http来解决了这个问题。

安装

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

使用

import { HTTP } from '@ionic-native/http/ngx';

constructor(private http: HTTP) {}

...

this.http.get('http://ionic.io', {}, {})
  .then(data => {

    console.log(data.status);
    console.log(data.data); // data received by server
    console.log(data.headers);

  })
  .catch(error => {

    console.log(error.status);
    console.log(error.error); // error message as string
    console.log(error.headers);

  });

更多详细信息:请参见official link