I kept getting the error in the title of this post. So I removed my .json() from response.json() my below code
return this.http.post('http://localhost:3000/sign-up', body, {headers: headers}) .map((response: Response) => response.json())
However, now I am getting as an error::予期しないトークンを<JSONに位置0にJSON.parse(<anonymous>)
Response {_body: "<!DOCTYPE html>↵<html lang="en">↵<head>↵ <base …src="/js/app/bundle.js"></script>↵</body>↵</html>",
私はウェブ開発に新しいです、と私は私が撮ったオンラインコースからのコードを使用しようとしています。私は私のconsole.logがオブジェクトであり、この 'Response'ではないことを知っています。返されたデータをHTMLフォームから送信した情報にするにはどうすればよいですか?
また、私は元のコードをUnexpected token < in JSON at position 0 at JSON.parse (<anonymous>)
エラーにする方法を示しています。私が言ったようにしかし、私はその.jsonを削除()とResponse {_body: "<!DOCTYPE html>↵<html lang="en">↵<head>↵ <base …src="/js/app/bundle.js"></script>↵</body>↵</html>",
エラー
import { Injectable } from "@angular/core";
import { Http, Headers, Response } from "@angular/http";
import 'rxjs/Rx';
import { Observable } from "rxjs";
import { User } from "./user.model";
import { ErrorService } from "../errors/error.service";
@Injectable()
export class AuthService {
constructor(private http: Http, private errorService: ErrorService) {}
signup(user: User) {
const body = JSON.stringify(user);
const headers = new Headers({'Content-Type': 'application/json'});
return this.http.post('http://localhost:3000/sign-up', body, {headers: headers})
.map((response: Response) => response.json());
// .catch((error: Response) => {
// this.errorService.handleError(error.json());
// return Observable.throw(error.json());
// });
}
}
あなたのコード中に問題があなたが戻って取得しているコンテンツである
Next Class
import { Component, OnInit } from "@angular/core";
import { FormGroup, FormControl, Validators } from "@angular/forms";
import { AuthService } from "./auth.service";
import { User } from "./user.model";
@Component({
selector: 'app-signup',
templateUrl: './signup.component.html'
})
export class SignupComponent implements OnInit {
myForm: FormGroup;
constructor(private authService: AuthService) {}
onSubmit() {
const user = new User(
this.myForm.value.email,
this.myForm.value.password,
this.myForm.value.firstName,
this.myForm.value.lastName,
this.myForm.value.age,
this.myForm.value.goal
);
this.authService.signup(user)
.subscribe(
data => console.log(data),
error => console.error(error)
);
this.myForm.reset();
}
ngOnInit() {
this.myForm = new FormGroup({
firstName: new FormControl(null, Validators.required),
lastName: new FormControl(null, Validators.required),
email: new FormControl(null, [
Validators.required,
Validators.pattern("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
]),
password: new FormControl(null, Validators.required),
age: new FormControl(null, Validators.required),
goal: new FormControl(null, Validators.required)
});
}
}
おそらくサーバーはnullを返します。これはjsonに解析できません。 – NiVeR
私はあなたがhtmlコンテンツを持つプレーンテキストを取得しており、それをjson文字列として扱おうとしていると思います。 –
もう少し精巧にお考えですか?私が言ったように、私はウェブ開発のまったく新しいものなので、このような変更方法はわかりません。ありがとう! – XXIV