向 Django REST Framework 发送 jQuery 请求导致找不到 JSON 对象错误
Posted
技术标签:
【中文标题】向 Django REST Framework 发送 jQuery 请求导致找不到 JSON 对象错误【英文标题】:Sending a jQuery Request to Django REST Framework Results in no found JSON object error 【发布时间】:2013-07-18 02:41:19 【问题描述】:我正在使用 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 请求对象不是很明显。
【问题讨论】:
事实证明,将发送的数据转换为实际的字符串将使 JSON 可以被框架读取。根据 jQuery 文档,这应该以任何一种方式发生,但它似乎破坏了这个特定的数据对象布局?这解决了我的问题,但我不确定出了什么问题。如果我能弄清楚,我会把它作为答案发布。 看起来 Json 数据没有正确创建,请您尝试使用硬编码值,例如 "timeLogMins": 30, "personid": 3, "projectid": 8, "timeLogStart_dtm ": "2013-07-18" @AnshJ 是的,请参阅我之前的评论。最终这就是我最终要做的,发送一个字符串而不是一个对象,我还没有回答这个问题,因为我不确定为什么 jQuery 不处理数据对象,因为它应该。我猜这可能是“日期”格式的问题。 【参考方案1】:事实证明,将发送的数据转换为实际字符串将使 JSON 可以被框架读取。根据 jQuery 文档,这应该以任何一种方式发生,但它似乎破坏了这个特定的数据对象布局?这解决了我的问题,但我不确定出了什么问题。
【讨论】:
以上是关于向 Django REST Framework 发送 jQuery 请求导致找不到 JSON 对象错误的主要内容,如果未能解决你的问题,请参考以下文章
Python 3 Django Rest Framework - 如何向这个 M-1-M 模型结构添加自定义管理器?
如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组?
无法让 CORS 与内容类型一起使用 - Django Rest Framework