为什么DRF以数组的形式接收我的jquery ajax请求?

为什么DRF以数组的形式接收我的jquery ajax请求?,jquery,ajax,django-rest-framework,Jquery,Ajax,Django Rest Framework,我有以下问题: 我把$.ajax称为: $.ajax({ type: "POST", url: '/endpoint', headers: {"X-CSRFToken": csrf_token}, data: { 'action': 'my-action', 'data': {'text': 'blah'} }); 在Django Rest框架上,我得到了奇怪的结果 request.data == {'action': ['my-action'], 'dat

我有以下问题:
我把$.ajax称为:

$.ajax({
  type: "POST",
  url: '/endpoint',
  headers: {"X-CSRFToken": csrf_token},
  data: { 
    'action': 'my-action', 
    'data': {'text': 'blah'}
});
在Django Rest框架上,我得到了奇怪的结果

request.data == {'action': ['my-action'], 'data[text]':['blah']}
这里出了什么问题?

所以答案是:

1.)jQuery发送了编码错误的请求,需要添加

$.ajax({
  type: "POST",
  url: '/endpoint',
  headers: {"X-CSRFToken": csrf_token},
  contentType: 'application/json',  // <-- this
  data: { 
    'action': 'my-action', 
    'data': {'text': 'blah'}
});
class MyViewSet(viewsets.ModelViewSet):
    parser_classes = [JSONParser]
这让我很沮丧

request.data == {'action': 'my-action', 'data': {'text': 'blah'}}
我一直在找的