在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用
Posted
技术标签:
【中文标题】在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用【英文标题】:Http request working on ionic serve but doesn't work on "ionic cordova run android --device" 【发布时间】:2019-10-21 01:32:57 【问题描述】:我正在使用 Ionic 本机 http 来发出服务器请求。服务器托管在 aws 上,并且 API 已启动并正在运行(由邮递员验证)。
当我执行 ionic 服务时,请求会通过并工作,但是当我尝试在设备上运行它时它不起作用。经检查,我得到“net::ERR_CLEARTEXT_NOT_PERMITTED”,帖子作为选项发送
ERROR HttpErrorResponse headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: "http://18.220.143.133/api/login", ok: false, ...
已经尝试添加到 config.xml
login(user: User): Observable<AuthResponse>
return this.httpClient.post('http://18.220.143.133/api/login', user,
headers: new HttpHeaders().set('Content-Type', 'application/json'),
).pipe(
tap(async (res: AuthResponse) =>
if (res.success == true)
await this.storage.set('user',res.user);
await this.storage.set('ACCESS_TOKEN', res.token);
this.authSubject.next(true);
)
);
我希望移动设备也能通过 http 请求。
【问题讨论】:
HTTP request from angular will send with method OPTIONS instead of POST的可能重复 【参考方案1】:同样的事情发生在我身上,直到我在 config.xml 文件中添加:
<preference name = "android-targetSdkVersion" value = "27" />
【讨论】:
【参考方案2】:这与 API 调用的 CORS 有关。 This 可能会有所帮助。此外,由于您使用的是 Angular HTTP 请求,请在此处查看HTTP request from angular will send with method OPTIONS instead of POST。
【讨论】:
以上是关于在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
通过设置Ionic-Cli代理解决ionic serve跨域调试问题
设置“firebase javascript”以与“ionic serve”一起使用
如果我更改 common.d.ts ionic serve 正常运行的原因