D3v5 and Django Rest Framework



我在让以下 AJAX 调用工作时遇到了一些问题。 我正在使用 D3 版本 5 向 Django REST 框架 (DRF( ModelViewSet(版本 3.x(视图发出以下 POST 请求。 DRF 在路径/gander/tasks/下提供任务列表,并允许通过 POST 到同一路径来创建新任务。 我相信我正确地检索了 CSRF 令牌,但我不确定我是否正确制定了 POST。

d3.json("/gander/tasks/?format=json",
{method:"POST",
headers:{
"Content-type": "application/json; charset=UTF-8",
"X-CSRFToken" : Cookies.get('csrftoken') },
body:JSON.stringify({
"parent": null,
"name"  : "",
"time"  : null}),
})
.then(json => {console.log(json);})
.catch(error => {console.log(error);});

我已经浏览了 Django A.J.A.X. 文档、D3 示例和一堆 SO 问题,但它们都引用了 D3-Request 接口,我找不到任何使用上述较新的 D3-Fetch API 的示例。

多亏了@dkarchmer我想我需要更多关于服务器端的信息。下面的mixin对于显示接收和传输的数据非常有用。

class AjaxLoggingMixin(object):
def finalize_response(self, request, response, *args, **kwargs):
print(request.data)
print(response.data)
return super().finalize_response(request, response, *args, **kwargs)

事实证明,请求正在正确通过,但格式不正确,Django 拒绝它们返回 4XX 错误代码。特别

  • 当用户未通过身份验证或用户身份验证未正确设置时,会出现 403 结果。

  • 数据格式不正确时出现 400 个结果。

最新更新