現在、RESTfulをバックエンドとして使用しているAngular 2プロジェクトで作業しています。角2 HTTPポスト:応答オブジェクトを取得できません。
ここで私の質問に役立つ短いシーンアリーナです。
ユーザーがログインすると、いくつかのユーザーの詳細を表示するプロファイル/注文ページにリダイレクトします。
これを達成するために、私はRegister.ts を持っています。ここに私のコードはこのように見えます。私は、ユーザーの詳細情報を表示することができる午前
onLogin(_username:string, _password:string)
{
const data = {
username:_username,
password:_password,
}
this._registerService.Login(data)
.subscribe(
data=> resolve(data.json())
)
console.log(this.response);}
onPost(username:string, email:string, password:string, housenumber:string, street:string, city:string)
{
const data = {
username:username,
email:email,
password:password,
housenumber:housenumber,
street:street,
city:city
}
if (data == null)
this.isValid == false;
else {
this.isValid == true;
this._registerService.Register(data).subscribe(
data=> this.response = JSON.stringify(data),
error => console.log(error)),
data=>console.log(data);
localStorage.setItem('user', JSON.stringify(data)
);
if(localStorage.getItem("user") != null) {
this._registerService.isLoggedIn = true;
this._router.navigate(['/order']);
}
else
//replace this with a page
alert("Sign in with a correct name!");
}
}
以下のように彼らは、申し込み時に
export class RegisterService{
public isLoggedIn:boolean;
public userDetails:any;
public newUser = new User("","","",null);
constructor(private _http: Http){
this.isLoggedIn = false;
}
Register(data:any) {
const body = JSON.stringify(data);
// console.log(data);
this.userDetails = data;
// console.log("userdets: "+this.userDetails.username);
const headers = new Headers();
headers.append('Content-Type', 'application/json');
return this._http.post(`http://192.168.20.17:8080/webshop/api/user/create?username=`+data.username+`&password=`
+data.password+`&email=`+data.email+`&city=`+data.city+`&housenumber=`+data.housenumber+
`&street=`+data.street, body, {headers: headers}
);
}
Login(data:any):Observable<any>{
const body = JSON.stringify(data);
// console.log(data);
const headers = new Headers();
headers.append('Content-Type', 'application/json');
return this._http.post(`http://192.168.20.17:8080/webshop/api/user/login?username=`
+data.username+`&password=`+data.password, body,{headers:headers})
.map((res:Response)=> JSON.stringify(res));
// console.log(this.newUser);
}
そして、私のサインin.component.tsに、私はこのサービスを利用する方法がありますが、とき私はこのようなJSONオブジェクトであることを意味する応答を得ることができない、ユーザがログインすると:
{
"address": {
"addition": null,
"city": "Nijmegen",
"housenumber": "908",
"street": "de Voorstenkamp"
},
"email": "[email protected]",
"password": "678",
"username": "feedme"
}
を私はUser.ts
、2つのクラスを作成しようとしましたimport {Address} from "./Address.ts";
export class User {
username:string;
email:string;
password:string;
address:Address;
constructor(username:string, email:string, password:string,address:Address){
this.username = username;
this.email = email;
this.password = password;
this.address = address;
}
public static createEmptyUser():User{
return new User("","","",null);
}
}
そして、この2つのクラスを使用してaddress.tsは
export class Address {
street:string;
housenumber:string;
addition:string;
city:string;
constructor(street:string, housenumber:string,addition:string,city:string) {
this.street = street;
this.housenumber = housenumber;
this.addition = addition;
this.city = city;
}
public static createEmptyAddress():Address {
return new Address("","","","");
}
}
、私は、ユーザーオブジェクトを取得するには応答を解析しようとしたが、私はまったく応答を取得することはできませんよ。
誰でも私を助けることができますか?私は本当にそれを感謝します。