【发布时间】:2015-06-17 06:36:14
【问题描述】:
这是一个 Django 项目,我必须编写一个在线商店。 在我的 html 中,我有一个 ID 为“search”的表单,我在我的 ajax 代码中使用这个 'id' 来搜索并与我创建的日期库进行比较。最后它必须在屏幕上显示我的可能数据像谷歌查找器一样的日期库。我的大问题是 CSRF,在我的控制台中: “发布/搜索/HTTP/1.1”403 2295 我在此页面上看到有人遇到同样的问题,但我不知道失败在哪里。
这是我的 ajax 代码:
$("#search").keyup(function(){
var cadena = $("#search").val();
var csrf = $("input[name=csrfmiddlewaretoken]").val();
var token = $('input[name=""__RequestVerificationToken""]').val();
if ( cadena.length > 2){
alert(cadena);
$.ajax({
type:"POST",
url: "http://127.0.0.1:8000/search/",
data:{'search_text':cadena,
''csrfmiddlewaretoken' : csrf},
success:function(respuesta){
$('#search-results').html(respuesta);
}
});
}
});
});
我的模板(html):
<td>
{% csrf_token %}
<input type="text" id="search" placeholder="Search"/>
<ul id ="search-results"></ul>
</td>
我的意见.py:
定义搜索标题(请求):
if request.method == "POST":
search_text = request.POST['search_text']
libros1 = Libros.objects.filter(nombre__contains=search_text)
print("asda");
else:
search_text =''
libros1 = Libros.objects.filter(nombre__contains=search_text)
return render('ajax_search.html',{'libros':libros1})
我的网址:
url(r'^admin/',include(admin.site.urls)),
url(r'^$', 'views.home'),
url(r'^(search)/', 'views.search_title'),
url(r'^(libros)/', 'views.libros'),
url(r'^(carrito)/', 'views.carrito')
在我的控制台中:
warnings.warn("模板中使用了{% csrf_token %},但上下文没有提供值。这通常是由于没有使用RequestContext造成的。")
【问题讨论】:
-
您可以从浏览器的调试工具栏(例如for chrome)更轻松地调试 AJAX 活动。这将允许您检查来自服务器的确切响应和错误详细信息。