我已经从从<form>发送数据切换到自己构建JSON字符串并将其发送到服务器。
我期望在向我的视图发送POST请求之后,浏览器将呈现JSON响应--基本上,显示一个包含发布的JSON数据的页面。当我通过表单POST请求提交时就是这种情况。
实际发生的情况是浏览器什么也不做。但是我仍然可以看到服务器正在向浏览器发送正确的响应。但是为什么页面不重定向以显示JSON数据呢?
javascript.js
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
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
path('cartography/', cartography_view, name = 'cartography'),home.html
<button class="pushable" onclick="submit"/>submit to cartography</button>编辑:这是响应:
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 }发布于 2021-07-02 04:37:46
您从视图返回的json,我将在成功时在您的Javascript中接收它,并打印到控制台以确保它会返回。
从本质上讲,你仍然需要对请求做一些事情。我通常使用Ajax请求完成此操作,如果成功,将接收返回数据并显示它,在警报或弹出窗口中显示它,或者刷新页面。
https://stackoverflow.com/questions/68216494
复制相似问题