gpt4 book ai didi

Ionic2 代理不使用 ionic run 但使用 ionic serve?

转载 作者:行者123 更新时间:2023-12-04 12:52:32 24 4
gpt4 key购买 nike

我的 ionic.config.json我有:

{
"name": "TSICMobile",
"app_id": "6e4680fa",
"typescript": true,
"v2": true,
"proxies": [
{
"path": "/api",
"proxyUrl": "http://192.168.0.105:8081/api"
}
]
}

在我的提供商( user-data.ts ,基于 Ionic2 session 应用程序)中,我有例如:
login(credentials) {
return new Promise((resolve, reject) => {
this.http.post(
'/api/Login',
JSON.stringify(credentials),
{ headers: this.contentHeader }
).subscribe(res => {
console.log('api/Login return');
this.data = res.json();
if (this.data.authenticated === true) {
this.storage.set('TSIC_USER_PROFILE', JSON.stringify(this.data.tsiC_USER_PROFILE));
this.storage.set('TSIC_USER_ROLES', JSON.stringify(this.data.listRoles));
this.storage.set('tsic_id_token', this.data.token);
this.events.publish('user:login');
resolve(true);
} else {
reject('not authenticated');
}
}, error => {
console.log('api/Login failed');
reject(error);
});
});
}

运行时:
ionic serve --lab -c

代理完美运行并发布到 http://192.168.0.105:8081/api/Login

运行时
ionic run android -c

帖子网址是 file://api/Login ,显然失败了。

需要帮助来理解为什么(似乎)代理在设备上运行时无效,以及我可能做错了什么或不理解。

最佳答案

当你在你的设备上时你不需要代理,因为 ionic 可以处理那里的 cors。您需要服务上的代理,因为浏览器正在尝试处理 CORS 并且对其更加严格。

我建议你做的是检查 window.cordova 是否存在,以及它是否使用普通 url,否则使用代理 url。

像这样:

 login(credentials) {
return new Promise((resolve, reject) => {
this.http.post(
window.cordova?:'http://192.168.0.105:8081/api/Login':'/api/Login':,
JSON.stringify(credentials),
{ headers: this.contentHeader }
).subscribe(res => {
console.log('api/Login return');
this.data = res.json();
if (this.data.authenticated === true) {
this.storage.set('TSIC_USER_PROFILE', JSON.stringify(this.data.tsiC_USER_PROFILE));
this.storage.set('TSIC_USER_ROLES', JSON.stringify(this.data.listRoles));
this.storage.set('tsic_id_token', this.data.token);
this.events.publish('user:login');
resolve(true);
} else {
reject('not authenticated');
}
}, error => {
console.log('api/Login failed');
reject(error);
});
});
}

关于Ionic2 代理不使用 ionic run 但使用 ionic serve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38358674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com