我已使用以下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
来获取上述错误?
答案 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