首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django视图在AJAX POST请求后未重定向

Django视图在AJAX POST请求后未重定向
EN

Stack Overflow用户
提问于 2021-07-02 04:22:37
回答 1查看 19关注 0票数 0

我已经从从<form>发送数据切换到自己构建JSON字符串并将其发送到服务器。

我期望在向我的视图发送POST请求之后,浏览器将呈现JSON响应--基本上,显示一个包含发布的JSON数据的页面。当我通过表单POST请求提交时就是这种情况。

实际发生的情况是浏览器什么也不做。但是我仍然可以看到服务器正在向浏览器发送正确的响应。但是为什么页面不重定向以显示JSON数据呢?

javascript.js

代码语言:javascript
复制
async function submit() {

  let response = await fetch('/cartography/', {
    method: 'POST',
    body: JSON.stringify({test: "test"}),
    headers: {
      "Content-Type": "application/json;charset=utf-8",
      "X-CSRFToken" : csrfToken.value,
    },
  })
}

views.py

代码语言:javascript
复制
def cartography_view(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        json_data = json_dumps(request_data)
        return JsonResponse(json_data) # <-- doesn't redirect. but why?

urls.py

代码语言:javascript
复制
path('cartography/', cartography_view, name = 'cartography'),

home.html

代码语言:javascript
复制
<button class="pushable" onclick="submit"/>submit to cartography</button>

编辑:这是响应:

代码语言:javascript
复制
Response { type: "basic", url: "http://127.0.0.1:8000/cartography/", redirected: false, status: 200, ok: true, statusText: "OK", headers: Headers, body: ReadableStream, bodyUsed: false }
EN

回答 1

Stack Overflow用户

发布于 2021-07-02 04:37:46

您从视图返回的json,我将在成功时在您的Javascript中接收它,并打印到控制台以确保它会返回。

从本质上讲,你仍然需要对请求做一些事情。我通常使用Ajax请求完成此操作,如果成功,将接收返回数据并显示它,在警报或弹出窗口中显示它,或者刷新页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68216494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档