【问题标题】:Uncaught (in promise): Server error未捕获(承诺):服务器错误
【发布时间】:2016-12-20 05:45:07
【问题描述】:

我在使用 nativescript 应用程序时遇到此异常。

EXCEPTION: Uncaught (in promise): Server error
JS: ORIGINAL STACKTRACE:
JS: Error: Uncaught (in promise): Server error
JS:     at resolvePromise (/data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:416:31)
JS:     at /data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:452:17
JS:     at ZoneDelegate.invokeTask (/data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:223:37)
JS:     at Object.onInvokeTask (/data/data/com.yourdomain.appname/files/app/tns_modules/@angular/core/bundles/core.umd.js:6197:41)
JS:     at ZoneDelegate.invokeTask (/data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:222:42)
JS:     at Zone.runTask (/data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:123:47)
JS:     at drainMicroTaskQueue (/data/data/com.yourdomain.appname/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:355:35)
JS: Unhandled Promise rejection: Server error ; Zone: angular ; Task: Promise.then ; Value: Server error 

这就是我所拥有的:

login.component.tns.html

<StackLayout class="p-10">
<TextField [(ngModel)]="email" hint="email" autocorrect="false" autocapitalizationType="none"></TextField>
<TextField [(ngModel)]="password" hint="Password" secure="true"></TextField>
<Button text="signin" (tap)="login(user)"></Button>
<Button text="signup" (tap)="signup(user)"></Button>
</StackLayout>

login.component.ts

@BaseComponent({
moduleId: module.id,
selector: 'demo-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})

export class LoginComponent {
login() {
    this.user.password = this.password;
    this.user.username = this.email;
            this.loginService.signin(this.user)
        .subscribe(
        token => {
            this.loginCredentials.setUserId(token.userId);
            this.routerext.navigate(['/list'], {
                transition: {
                    duration: 1000,
                    name: 'slideTop',
                }
            });
        }
        )
};
}

login.service.ts

export class User {
constructor(
    public username: string,
    public password: string) { }
}

@Injectable()
export class LoginService {
signin(user: User) {
            return this.authModelApi.login({
        "email": user.username,
        "password": user.password
    })
        .map(token => token)
        .catch(this.handleError);
};
}

单击登录按钮时,我收到此错误“服务器错误”。我应该如何解决这个问题?我的 Web 和桌面应用程序与此代码完美配合。我正在使用 mongoDb 作为后端。我是 nativescript 和 angular2 的新手。任何帮助都会非常有帮助并且非常值得赞赏。

【问题讨论】:

    标签: javascript mongodb angular nativescript angular2-nativescript


    【解决方案1】:

    我不确定您使用哪个 HTTP 模块来调用此登录服务方法

    return this.authModelApi.login({
        "email": user.username,
        "password": user.password
    })
    

    根据我的经验,似乎由于某些原因,您不能使用原生 Angular HTTP 模块来执行 HTTP 请求。您必须使用 Nativescript HTTP 模块。所以像这样,

    import { getJSON, request } from "http";
    ...
    
    return request({
      url: "....",
      method: "POST"
      headers: [your headers],
      content: [your content]
    })
    
    
    return getJSON("your url here")
    

    在此处查看官方文档:https://docs.nativescript.org/angular/code-samples/http.html

    【讨论】:

    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 2022-12-19
    • 2017-11-11
    • 2021-11-28
    • 2018-05-12
    • 2019-08-20
    • 2022-09-24
    • 2023-01-30
    相关资源
    最近更新 更多