在 Ionic 4 应用程序中无法绕过 CORS
Posted
技术标签:
【中文标题】在 Ionic 4 应用程序中无法绕过 CORS【英文标题】:Not able to bypass CORS in Ionic 4 application 【发布时间】:2019-09-23 12:18:21 【问题描述】:我正在尝试使用 this GitHub project 控制我的 GoPro Fusion。每当我运行POST
请求时,我都可以控制它,但现在我试图通过运行GET
请求来监听http://10.5.5.9/gp/gpControl/status
上的状态变化。
每次我请求此 URL 时,我都会在我的 safari 检查器中获得以下信息:
由于访问控制检查,XMLHttpRequest 无法加载 http://10.5.5.9/gp/gpControl/status。 错误:未捕获(承诺中):响应状态:0 对于 URL:null 加载资源失败:Access-Control-Allow-Origin 不允许 Origin ionic://localhost。
我一直在使用ionic cordova run ios -l -c
运行我的应用程序,并尝试在ionic.config.json
中设置代理:
"proxies": [
"path": "/gp/gpControl",
"proxyUrl": "http://10.5.5.9"
]
但这不起作用,我反而认为由于代理不起作用,我应该尝试在没有实时重新加载服务器的情况下安装它,但我仍然得到完全相同的错误。
如果我在移动浏览器中访问 url,它会很好地加载 json,只有当我尝试在其上运行 GET
时,它才会失败并出现 2 个 cors 错误。
我实际运行GET
的代码如下所示:
constructor(
private http: Http
)
setInterval(() =>
this.get('http://10.5.5.9/gp/gpControl/status').then(a =>
console.log(a);
);
, 1500);
public get(path, params = ): Promise<any>
return this.http.get(this.baseUrl + path, params).toPromise();
我已经解决这个问题超过 12 个小时了,完全不知道接下来要尝试什么,所以非常感谢任何帮助。
【问题讨论】:
【参考方案1】:只需使用cordova-plugin-advanced-http
即可解决
在标准 Swift 项目上使用 AngularFire 进行测试并且没有任何问题后,我安装了上述插件并且所有请求都按预期工作。
【讨论】:
以上是关于在 Ionic 4 应用程序中无法绕过 CORS的主要内容,如果未能解决你的问题,请参考以下文章
在 ionic 4 上使用 Angular 7 帖子时出现 Cors 策略错误
如何绕过 CORS 并从 CORS 阻止的 API 获取数据?