2017-01-24 6 views
0

私はユーザー確認メールを持っています。電子メール本文は、私の角度2のルートlocalhost:4200/verify/{userId}で構成されています。ユーザーがリンクをクリックすると、角度2のルートに移動し、URLを分割してuserIdを取得してサービスに渡します。angle2から来たバックエンドに対するリクエストが不正です

私verify.component.ts

ngOnInit() { 
    var str = this._router.url; 
    var userId = str.split('/'); 
    this._verifyService.verifyUser(userId[2]) 
     .subscribe((user) => console.log(user), 
     (err) => console.log(err)); 
} 

これは、それが値を渡しするサービスです見てみてください。

export class VerifyService{ 
    constructor(private _http: Http){} 

    verifyUser(userId){ 
     var headers = new Headers(); 
     console.log(userId); 
     headers.append('Content-Type', 'application/json'); 
     return this._http.post('http://localhost:3000/user/verify', userId, {headers: headers}) 
      .map((response: Response) => { 
       return response.json(); 
      }) 
      .catch(this._handlerError) 
    } 

    _handlerError(err: any){ 
     console.log(err); 
     // throw err; 
     return Observable.throw(err); 
    } 
} 

これは、検証するユーザーの更新を処理するバックエンドです。

userRouter.route('/verify') 
    .post(function (req, res) { 
     console.log(req.body); 
     var userId = req.body.userId; 
     console.log(userId); 
     users.findOneAndUpdate({ _id: userId }, { $set: { verified: true } }, { new: true }) 
     .exec(function (err, user) { 
      res.json(user); 
     }); 
    }); 

要求はそれが動作ポストマン、から来ています。ユーザーレコードを更新し、それを検証するように変更しますが、私がangle2を使用してそれを使用すると、不正な要求が返されます。どうして?誰でも説明できますか?

注::このようなリクエストがあり、動作します。唯一の違いは、電子メールからのアプローチであり、リンクをクリックすることです。この情報が役立つかどうかわかりませんが、言及する価値はあります。

答えて

0

文字列のURLをオブジェクトに変換して問題を解決しました。私はそれが渡す値appplication/jsonであるヘッダーの問題は文字列だと思う。今私はオブジェクトとして値を渡しているし、それはトリックを行います!

関連する問題