Django没有检测到在JavaScript fetch POST请求中发送的数据可能是由于以下几个原因:
- 跨域请求问题:浏览器的同源策略限制了在不同域名、端口或协议下的请求。如果你的JavaScript代码和Django应用不在同一个域名下,浏览器会阻止请求发送到不同的域。解决这个问题的方法是在Django应用中设置跨域资源共享(CORS)策略,允许来自特定域的请求。
- 请求头缺少必要的信息:在fetch POST请求中,需要确保请求头中包含了必要的信息,例如Content-Type。Django默认使用表单数据(application/x-www-form-urlencoded)作为请求的Content-Type,如果你使用了其他类型的数据,例如JSON数据(application/json),需要在请求头中指定正确的Content-Type。
- 请求数据格式错误:确保你在JavaScript代码中正确地序列化请求数据。如果数据格式不正确,Django可能无法正确解析请求体中的数据。可以尝试使用JSON.stringify()方法将数据转换为JSON字符串。
- Django视图函数未正确处理请求:确保你的Django视图函数正确地处理了POST请求,并且能够解析请求体中的数据。可以使用Django提供的request.POST或request.body来获取请求数据。
综上所述,如果Django没有检测到在JavaScript fetch POST请求中发送的数据,可能是由于跨域请求问题、请求头缺少必要的信息、请求数据格式错误或Django视图函数未正确处理请求。你可以根据具体情况逐一排查并解决这些问题。