我是Django的新手,所以我会尽力描述我的情景:
有人知道为什么会这样,以及如何解决这个问题?
{{3}}
var url = "{% url "ebanalyzer:search" %}";
//window.location=url;
$.post(url,{"query" : newValue,csrfmiddlewaretoken: '{{ csrf_token }}'},function (data,status) {
//alert("data: " + data + "status: " + status)
newValue param获取搜索字段值
来自urls文件的#/搜索 url(r' ^ search / $",views.post_new,name =' search'),
来自views文件 @ensure_csrf_cookie def post_new(request): 打印(request.POST ['查询']) if request.POST [" query"]!='': 打印("渲染&#34) return render(request,' ebanalyzer / index.html',{" object_list":ebInfo.getSoldItems(request.POST [" query"])})
因此,只需强调流程,用户点击"粘贴"按钮 - >执行ajax帖子 - >调用post_new(到目前为止很好) - >响应返回到客户端但页面未使用新数据更新
答案 0 :(得分:0)
csrfmiddlewaretoken:'{{csrf_token}}'
不要像这样放置csrf,{{csrf_token}}表示HTML代码。 将csrf_token放在模板中,无论HTML代码在哪里。
尝试使用这样的ajax请求而不是你所做的:
$.ajax({
url:url,
data:{
query:newValue,
csrfmiddlewaretoken:$('input[name="csrfmiddlewaretoken"]').val(),
},
success:function(data){
$("#container").replaceWith($("#container",$(data)));
}
});
希望这有帮助。