无法在 Ionic 4 应用程序中绕过 CORS
Not able to bypass CORS in Ionic 4 application
我正在尝试使用 this GitHub project 控制我的 GoPro Fusion。每当我 运行 发出 POST
请求时,我都可以控制它,但现在我正在尝试通过 运行 宁 [=14] 来监听 http://10.5.5.9/gp/gpControl/status
上的状态变化=] 请求。
每次我请求这个 URL 我都会在我的 safari 检查器中得到以下信息:
XMLHttpRequest cannot load http://10.5.5.9/gp/gpControl/status due to access control checks.
Error: Uncaught (in promise): Response with status: 0 for URL: null
Failed to load resource: Origin ionic://localhost is not allowed by Access-Control-Allow-Origin.
我一直在 运行使用 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 个多小时,完全不知道接下来要尝试什么,所以非常感谢任何帮助。
只需使用cordova-plugin-advanced-http
即可解决
在标准 Swift 项目上使用 AngularFire 进行测试并且它没有任何问题后,我安装了上述插件并且所有请求都按预期工作。
我正在尝试使用 this GitHub project 控制我的 GoPro Fusion。每当我 运行 发出 POST
请求时,我都可以控制它,但现在我正在尝试通过 运行 宁 [=14] 来监听 http://10.5.5.9/gp/gpControl/status
上的状态变化=] 请求。
每次我请求这个 URL 我都会在我的 safari 检查器中得到以下信息:
XMLHttpRequest cannot load http://10.5.5.9/gp/gpControl/status due to access control checks. Error: Uncaught (in promise): Response with status: 0 for URL: null Failed to load resource: Origin ionic://localhost is not allowed by Access-Control-Allow-Origin.
我一直在 运行使用 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 个多小时,完全不知道接下来要尝试什么,所以非常感谢任何帮助。
只需使用cordova-plugin-advanced-http
在标准 Swift 项目上使用 AngularFire 进行测试并且它没有任何问题后,我安装了上述插件并且所有请求都按预期工作。