React前端在请求成功后未收到Django HttpResponse的响应

2024-04-19 04:03:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个带有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

我将其解释为没有任何东西返回前端(尽管我可能是错的)。同样,我知道后端正在接收请求,因为数据库中创建了一条记录

有什么我应该试着调试的吗


Tags: djangotextform数据库returnisrequestreact
1条回答
网友
1楼 · 发布于 2024-04-19 04:03:19

您正在以错误的方式使用React。承诺是为了在以后的时间点返回结果而设计的。当你的承诺被解决或拒绝时。努力解决承诺

axios.post('/api/thing/new/', qs.stringify({thing_text: thing.thing_text}), {'headers': headers})
      .then(res=>(
        console.log(res.data)
      ))

相关问题 更多 >