2016-09-14 21 views
0

在我的項目中,前端是Angular2, 我正在做一個POST請求到Django的URL是這樣的:JSON數據沒有達到Django的正確

let headers = new Headers({ 'Content-Type': 'application/json' }); 
let options = new RequestOptions({ headers: headers }); 
let body = JSON.stringify(this.myMetadata); 
let req = this.http.post(this.url,body,options) 
    .map((res:Response) => res.json()) 
    .subscribe(
    data => { this.response = data}, 
    err => console.error(err), 
    () => console.log('done') 
); 
    return req; 

但是Django的後端不receving數據作爲JSON

if request.method == 'POST': 
    logger.info(request.method) 
    logger.info(type(request.body)) 
    logger.info(request.POST) 

日誌轉儲顯示,Django的已經接收到的數據爲字符串,因爲這沒有任何JSON方法進行這項工作的。

Method:POST 
request.body type:<type 'str'> 

解決此問題的最佳方法是什麼?

有沒有辦法將字符串轉換爲字典?

+0

嘗試使用Django的REST框架,編寫串行器,它將你的JSON轉換成的目標 – sebb

+0

可能的複製[凡在我進入Django的請求,我的JSON數據?](http://stackoverflow.com/questions/1208067/wheres-my-json-data-in-my-incoming-django-request) –

回答

0

有沒有辦法將字符串轉換爲字典?

是隻使用JSON模塊

import json 
... 
if request.method == 'POST': 
    data = json.loads(request.body) 
    logger.info(type(data))