2016-02-23 33 views
0

我在使用Angular 2 http.post-request時遇到了一些麻煩。表示http身體成爲key中的關鍵字:值對

let body = JSON.stringify({user:'username', passw:'mypass'}); 
let headers = new Headers(); 

headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

this.http.post(`http://localhost:8090/api2/drawing/12345`, body, {headers: headers}) //TODO: remove localhost 
    .subscribe((res: Response)=>{ 
    this.data = res.json(); 
    console.log(this.data); 
    }) 

在我的快遞,應用程序,與bodyparser,請求正文是這樣的:

{ '{"user":"username","passw":"mypass"}': '' } 

的時候我希望它看起來更像是這樣的:

{ user:"username", passw:"mypass" } 

我有像這樣配置bodyParser:

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

我哪裏錯了?

謝謝!

+0

這不是Angular2問題。 – Sasxa

+0

我設法發送正確的郵遞員的郵遞請求。這就是爲什麼我認爲角度是問題... – mottosson

+2

其實我可能是錯的。只是注意到你的標題。嘗試使用'application/json'而不是'application/x-www-form-urlencoded'。 – Sasxa

回答

0

您正在發送一個JSON編碼的身體不匹配Content-Typeapplication/x-www-form-urlencoded。如果你想保持身體JSON,改變這種:

headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

這樣:

headers.append('Content-Type', 'application/json');