python - 成功请求后反应前端未收到来自 Django HttpResponse 的响应
问题描述
我正在开发一个带有 React 前端和 Django 后端的应用程序。
前端请求正在命中后端(并更新数据库),但没有向前端返回响应。我对 Django 和 React 都是新手,所以我无法调试它。
反应前端
var csrftoken = Cookies.get('csrftoken')
let headers = {
"X-CSRFToken": csrftoken,
"Content-Type": "application/x-www-form-urlencoded"
};
const qs = require('qs');
axios.post('/api/thing/new/', qs.stringify({thing_text: thing.thing_text}), {'headers': headers})
.then((result) => {
console.log(results)
});
Django 后端
class ThingForm(ModelForm):
class Meta:
model = Thing
fields = ['thing_text']
def thing_create(request):
form = ThingForm(request.POST or None)
if form.is_valid():
form.save()
return JsonResponse({'foo':'bar'})
我也尝试过回复return HttpResponse(status=204)
但无济于事。
这会导致错误,
Uncaught (in promise) ReferenceError: results is not defined
我将其解释为没有任何东西返回到前端(尽管我可能是错的)。同样,我知道后端正在接收请求,因为在数据库中创建了一条记录。
有什么我应该尝试调试的吗?
解决方案
你以错误的方式使用 React。Promise 旨在稍后返回结果。到您的承诺被解决或拒绝时。尝试解决承诺。
axios.post('/api/thing/new/', qs.stringify({thing_text: thing.thing_text}), {'headers': headers})
.then(res=>(
console.log(res.data)
))
推荐阅读
- unity3d - 为什么动画从 Blender 导出到 Unity (.fbx) 后会这样
- php - 使用多个表在一个 while 中添加两个以上的 while 循环
- ios - 如何将骰子图像设为 Int 值?迅速
- powershell - etc/host 文件条目是否匹配,如果条目不匹配,则发送触发器
- java - 将 Morphia 升级到 2.0.0 的问题
- typescript - 对象数组的自定义属性类型
- java - YAMLException:不允许使用特殊字符
- javascript - Svelte:使组件对变量反应(重新渲染)
- android - SecurityException: 未能找到用户 0 的提供程序 com.package.name.provider ....;在 API 级别 30
- mysql - UPDATE tbl SET name = REGEXP_REPLACE(`name`,[:digit:],'')