-1
私は私のREST APIサーバにHTTPリクエストを使用してユーザー情報を取得する際に問題があったを持っている、私が間違っているかわからない....角度HTTPリクエストの問題
ログインボタンの場合はユーザーのクリック、角度の送信要求ユーザー名とパスワードでサーバーに送信し、正しい場合はユーザー情報を返します。それ以外の場合はnullを返します。問題は、ユーザー名とパスワードは正しいが、ユーザーサービスの可変ユーザーがまだnullであることです。
私はこの問題を解決する方法を知らないので、あなたが私を助けるなら、私は幸せになります!助けていただきありがとうございます。
のREST API:
package cz.flay.fellcms.http;
import cz.flay.fellcms.dao.UsersRepository;
import cz.flay.fellcms.entities.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@RestController
@RequestMapping(path = "/api/users")
public class UsersRestController {
@Autowired
private UsersRepository usersRepository;
Logger logger = LoggerFactory.getLogger(UsersRestController.class);
@CrossOrigin
@GetMapping(path = "/all")
public @ResponseBody Iterable<User> getAll(){
return usersRepository.findAll();
}
@CrossOrigin
@GetMapping(path = "/verify", params = {"username", "password"})
public @ResponseBody User verify(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password){
logger.info("t");
return usersRepository.verify(username, password);
}
}
ユーザーサービス
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { User } from '../entities/User';
@Injectable()
export class UserService {
private usersUrl: 'http://localhost:8080/api/users';
user: User;
verifyUrl: string;
constructor(private http: HttpClient) {}
isLoggedIn() {
return this.user != null;
}
isAdmin() {
return this.user.isAdmin;
}
unLoggin() {
this.user = null;
}
login(username: string, password: string) {
this.verifyUrl = 'http://localhost:8080/api/users/verify?username=' + username + '&password=' + password;
this.http.get<User>(this.verifyUrl).subscribe(data => this.user = data);
if (this.user != null) {
return true;
} else {
return false;
}
}
}
[角度2のサブスクリプションからデータを返す方法](https://stackoverflow.com/questions/39295854/angular-2-how-to-return-data-from-subscribe) – jonrsharpe
または異なる角度。 ** HTTPメソッドは非同期**なので、observablesの使用と '.subscribe'の必要性。 https://angular.io/guide/http – jonrsharpe
も読んでくださいまた、これは間違っています。 httpのものをサービスに移動します。ユーザ名とパスワードは本文ではなくURLに移動します。その 'verifyUrl'にローカルに保存しないでください。そのRESTサービスRESTfullを取得します。その他 – Zlatko