5
我正在使用Django的REST框架爲API供電,並使用jQuery向其發送Ajax請求。向Django REST框架發送jQuery請求導致找不到JSON對象錯誤
,下列curl正常工作:
curl -X POST -d '{"timeLogMins": 30, "personid": 3, "projectid": 8, "timeLogStart_dtm": "2013-07-18"}' -H "Content-Type: application/json" -u user:password http://localhost:8000/api/timelogests/
然而,當我使用jQuery一個Ajax調用,我得到一個錯誤
$.ajax({
url: update_url2,
contentType:"application/json",
headers: {
"Authorization": "Basic " + window.btoa("user:password"),
},
dataType: "json",
data: {
"timeLogMins":30,
"personid":personid,
"projectid":projectid,
"timeLogStart_dtm":start_date
},
type: 'POST',
}).error(function(r){ console.log(r) })
.success(function(r){ console.log("success", r) })
設置頁眉工作正常,但數據似乎回報:
"{"detail": "JSON parse error - No JSON object could be decoded"}"
我昨天開始使用REST Framework,所以對它仍然很新穎。有沒有一種方法可以攔截請求頭並檢查該JSON? REST框架請求對象不是很明顯。
事實證明,將數據發送到實際的字符串將使JSON可以被框架讀取。根據jQuery文檔,這應該以任何方式發生,但它似乎打破了這個特定的數據對象佈局?這解決了我的問題,但我不確定有什麼問題。如果我能弄明白,我會把它作爲答案發布。 – Simon
它看起來像Json數據沒有得到正確創建,你可以嘗試與硬編碼值,如{「timeLogMins」:30,「personid」:3,「projectid」:8,「timeLogStart_dtm」:「2013-07- 18「} –
@AnshJ是的,看到我以前的評論。最終這就是我最終做的,發送一個字符串而不是一個對象,我還沒有回答這個問題,因爲我不知道爲什麼jQuery不處理數據對象,因爲它應該。我猜這可能是如何「日期」被格式化的問題。 – Simon