gpt4 book ai didi

android - 不允许到本地主机的 NativeScript Angular 明文 HTTP 流量

转载 作者:行者123 更新时间:2023-12-04 10:46:23 34 4
gpt4 key购买 nike

我正在使用原生脚本的 angular 版本并尝试为我的网络创建登录系统。
下面是我尝试登录网络的代码。

home.component.ts

 import { LoginService } from '../Services/login/login.service';
export class LoginComponent implements OnInit {

public user: User;
loginForm: FormGroup;

constructor(private router: Router,
private userService: UserService,
private page: Page,
public loginDetails: LoginDetails,
private LoginService: LoginService

) {

this.user = new User();
this.user.email = "m@m.com";
this.user.password = "pass123";
this.user.logo = "~/Images/opos_logo.png";
}

submit() {

/* set a user variable with data from the formGroup */
const user: string = this.user.email;
/* set a password variable with data from the formGroup */
const password: string = this.user.password;

this.LoginService.loginUser(user, password)
.subscribe(data => this.checkUser(data));
}
}

服务/登录/登录.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from "@angular/core";
import { Jwt } from '../../Classes/jwt';


@Injectable({
providedIn: 'root'
})
export class LoginService {


loginUrl = 'http://localhost/Login.w';

constructor(private _http: HttpClient) { }

loginUser(user, pass) {
return this._http.get<Jwt>(
this.loginUrl, { params: { fi_user: user, fi_pass: pass } });
}
}

当我尝试像这样运行我的应用程序时,我会收到以下错误:

“originalStack”:“错误:java.io.IOException:在新的 ZoneAwareError (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:1298:31)\n 在 onRequestComplete (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/http/http-request/http-request.js:54:30)\n 在 Object.onComplete (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/http/http-request/http-request.js:43:7)"

尝试按照帖子 Android 8: Cleartext HTTP traffic not permitted 上的建议解决问题并遵循了该帖子上的建议。
我在我的程序中添加了一个 androidmanifest.xml 文件(这不是应用程序的一部分,因此我不确定应用程序是否正在访问该文件)在路径/App_Resources/Android/AndroidManifest.xml 上。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="__PACKAGE__"
android:versionCode="1"
android:versionName="1.0">

<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"/>

<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="__APILEVEL__"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
android:name="com.tns.NativeScriptApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:networkSecurityConfig="@xml/network_security_config">

<activity
android:name="com.tns.NativeScriptActivity"
android:label="@string/title_activity_kimera"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/LaunchScreenTheme">

<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.tns.ErrorReportActivity"/>
</application>

我还添加了一个 network_security_config.xml 文件,堆栈溢出帖子建议路径 res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">domain.com (to be adjusted)</domain>
</domain-config>
</network-security-config>

我还尝试将应用程序 android:usesCleartextTraffic="true"标记添加到我的 home.component.html 以修复错误,但这并没有解决问题。

最佳答案

尝试:

loginUrl = 'http://10.0.2.2/Login.w';

我刚刚阅读了文章: https://stackoverflow.com/a/48591525
@EdwardGarson 写道:

From the emulator, localhost or 127.0.0.1 refers to the emulator itself, not your local machine. You need to use ip 10.0.2.2, which is bridged to your local machine.



你好

关于android - 不允许到本地主机的 NativeScript Angular 明文 HTTP 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685073/

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