2017-10-06 13 views
0

私はMEANスタックプロジェクトに取り組んでおり、Angular 4には奇妙な問題があります。このメソッドWASは過去には動作していましたが、Angular4 Promiseコールバックが呼び出されていない

フロントエンドからユーザーを削除しようとしています。ページがuserService.delete()に呼び出しを送信すると、関数は、ユーザーを正常に削除する要求をバックエンドに送信します。それは応答として200を "正常に破壊された"返します。私はブラウザで応答を見ることができますが、約束のコールバックは応答を処理するために呼び出されることはありません。例:サービスの呼び出し

this.userService.deleteUser(localStorage.getItem('email'),localStorage.getItem('auth_token'), this.userId) 
     .then(response => { 
     console.log('got response') // <== never prints 
     if (response == "successfully destroyed") { 
      window.location.href = `/admin/users`; 
     } else { 
      alert("could not delete successfully") 
     } 
     }) 

UserServiceの機能:

deleteUser(email:string, auth_token:string, id:string): Promise<any> { 
const body = {email: email, auth_token: auth_token, id:id}; 
return this.http.post('/api/users/delete', body) 
    .toPromise() 
} 

と呼ばれることは決してありません.thenとページが何もしません。

ご協力いただきありがとうございます。

+0

サーバーからエラーが発生しているかどうかを確認してください。 – Avi

+0

コンソールにエラーが表示されますか?これはCORSの問題でしょうか? –

+0

Angleのどのバージョンを使用していますか?角度4+では 'http.post'で' toPromise() 'メソッドを使用できないため、あなたはどのバージョンのAngularを使用していますか? – asmmahmud

答えて

0

自分自身で答えを見つけました。

何らかの理由で、オブジェクト/辞書ではなく文字列を渡そうとすると、約束のコールバックが呼び出されません。

だけではなく、 "successfully destroyed"

{ 
    status: "successfully destroyed" 
} 

が、それは他の誰かがお役に立てば幸いです: は、私は私のサーバーのリターンをしなければなりませんでした!

関連する問題