【问题标题】:TypeError: result is null when subscribing to a post requestTypeError:订阅发布请求时结果为空
【发布时间】:2018-02-09 13:21:01
【问题描述】:

当我尝试订阅 post 请求时,它总是返回 TypeError: result is null

我正在使用一个与 Spring 启动应用程序连接的 Angular CLI,并带有一个简单的登录页面。我想将响应的标题保存在本地存储中的位置

这是堆栈跟踪:

"LoginComponent.prototype.login/

这是我的 login.service.ts:

const httpOptions = {   headers: new HttpHeaders({'Content-type': 'application/json'}) };

@Injectable() export class LoginService {

  private loginUrl = 'https://music-makers.herokuapp.com/login';

  constructor(private http: HttpClient) { }

  public login(user: User): Observable<any> {
    return this.http.post(this.loginUrl, user, httpOptions);   }

还有我的 login.components.ts:

export class LoginComponent implements OnInit {

  model: any = {};

  constructor(private loginService: LoginService, public router: Router) {
  }

  ngOnInit() {
  }

  login() {
    const user = <User>({
      email: this.model.email,
      password: this.model.password,
    });

    console.log('email: ' + user.email + '\npass: ' + user.password);

    this.loginService.login(user)
      .subscribe(
        result => {
          // Handle result
          localStorage.setItem('Authorization', result.headers.get('Authorization'));
          console.log(result);
        },
        error => {
          // Handle error
          console.log('Error');
        },
        () => {
          console.log('complete');
          // No errors, route to new page
        }
      );
  }
}

【问题讨论】:

  • 你检查过你的浏览器网络标签吗?你得到了什么?
  • 我得到一个状态码 200

标签: javascript angularjs node.js spring


【解决方案1】:

您的服务应该使用map() 作为可观察集合返回

public login(user: User): Observable<any> {
   return this.http.post(this.loginUrl, user, httpOptions)
             .map(responce => <any>responce)
             .catch(error => {
                return Observable.throw(error);
             });
 }

【讨论】:

  • 你得到了什么结果?
  • 只是空,或者如果你的意思是状态码是一个空主体的 200
  • @sofboy 但是你的服务应该和我回答的一样。这是在服务中使用 observable 的正确方法。
  • 如果我们检查元素,我们可以看到我们的标题和授权与帖子。但是如果我们在代码中请求它,则响应为 null
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多