angular - 由于设备 Ionic 上的访问控制检查,XMLHttpRequest 无法加载 XXXX
问题描述
我知道这似乎是一个重复的问题,但我在这里搜索了几个小时,但没有任何解决方案可以正常工作:这是我的问题,当我使用我的应用程序时,有时请求不起作用,当我运行它时它会更频繁地出现iOS 设备(iPhone 5s)比 Android 设备(One + 5T)。当我尝试请求 api 时 ,出现以下错误。 和:`
[Error] Erreur de récupération des gameCredits – e {headers: t, status: 0, statusText: “Unknown Error”, …}
e {headers: t, status: 0, statusText: “Unknown Error”, url: null, ok: false, …}e
(fonction anonyme) (cordova.js:1731)
(fonction anonyme) (main.js:1:97464)
onInvoke (vendor.js:1:27201)
run (polyfills.js:3:10150)
(fonction anonyme) (polyfills.js:3:20246)
onInvokeTask (vendor.js:1:27117)
runTask (polyfills.js:3:10845)
o (polyfills.js:3:7902)
invokeTask (polyfills.js:3:16825)
p (polyfills.js:2:27655)
v (polyfills.js:2:27895)
HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown`
我尝试了在以下讨论中找到的答案: - IONIC 3 CORS ISSUE(设置代理) - Ionic 3 中的 CORS 错误(降级到 UIWebview) - 在我的 config.xml 中的所有内容中添加一个 - 我在我的身份验证服务中添加了标题以确保它们存在 - 我添加了标头以将它们发送回 API。
你们知道我该如何解决这个问题吗?
这是我的代码的一些示例:这是我如何请求我的 api 的帖子示例
post(url: string, body?: any) {
return this.checkToken().then(isTokenValide => {
if (isTokenValide) {
return this.getToken().then(
token => {
this.headers = this.headers.set('Authorization', 'Bearer ' + token);
return this.http.post(this.domain + url, body, { headers: this.headers }).toPromise()
.then(response => {
let httpResponse = new HttpResponse(response);
if (this._checkStatus(httpResponse))
return Promise.resolve(response);
}).catch(error => {
return Promise.reject(error);
});
},
error => {
return Promise.reject(error);
}); } else {
if (url == 'auth/login' || url == 'auth/register') {
const headersLogin = new HttpHeaders({'Accept':'application/json','Content-Type':'application/json'});
let loginUrl =this.domain +url;
return this.http.post(loginUrl, body, { headers: headersLogin }).toPromise()
.then(response => {
let httpResponse = new HttpResponse(response);
if (this._checkStatus(httpResponse))
return Promise.resolve(response);
}).catch(error => {
return Promise.reject(error);
});
} else {
return Promise.reject('token invalide');
}
}
}).catch(error => {
return Promise.reject(error);
});
}
我的离子信息是:
cli 包:(/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
全局包:
cordova (Cordova CLI) : 8.0.0
本地包:
@ionic/app-scripts : 3.1.6
Cordova Platforms : browser 5.0.3
Ionic Framework : ionic-angular 3.9.2
系统:
Node : v8.10.0
npm : 6.1.0
OS : Linux 4.4
环境变量:
ANDROID_HOME : not set
杂项:
backend : pro`
解决方案
推荐阅读
- java - 提高 JDBC 查询的性能 - ArrayList 比较
- ruby-on-rails - Rails 升级使默认时间格式发生变化。如何还原?
- java - 在 JAVA 中反序列化时出现 ClassNotFoundException
- python - 以每秒帧数确定 MIDI 文件的时间划分
- javascript - 这个异常是如何处理的?(在 Promise 中的回调中抛出)
- laravel - Laravel 5.7 不发送验证电子邮件
- unity3d - Unity Build 安装但导致黑屏
- mysql - 常规日志不显示/记录更改
- php - Isset 检查 Array - Blade Laravel 5.8
- slider - 如何摆脱 Vuetify 滑块中的消息区域?