5

我正在使用 Django 的 REST 框架来支持 API,并使用 jQuery 向其发送 Ajax 请求。

以下 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 框架,所以对它还是很陌生。有没有办法可以拦截请求标头并检查该 JSON?REST Framework 请求对象不是很明显。

4

1 回答 1

5

事实证明,将发送的数据转换为实际字符串将使 JSON 可以被框架读取。根据 jQuery 文档,这应该以任何一种方式发生,但它似乎破坏了这个特定的数据对象布局?这解决了我的问题,但我不确定出了什么问题。

于 2013-10-17T19:50:22.727 回答