来自外部javascript文件的Django ajax请求
我正在尝试从外部javascript文件进行ajax调用 ajax.js来自外部javascript文件的Django ajax请求,javascript,ajax,django,django-csrf,Javascript,Ajax,Django,Django Csrf,我正在尝试从外部javascript文件进行ajax调用 ajax.js function ajax() { setInterval(function() { $.ajax({ url : "/ajax_get.html", type : "POST", dataType: "json", data : { client_response : '
function ajax() {
setInterval(function() {
$.ajax({
url : "/ajax_get.html",
type : "POST",
dataType: "json",
data : {
client_response : 'Y',
csrfmiddlewaretoken: '{{ csrf_token }}',
},
success : function(json) {
alert('Working');
},
error : function(xhr,errmsg,err) {
alert(xhr.status + ": " + xhr.responseText);
}
});
alert('Failing');
return false;
}, 5000);
}
包含在模板中
<script>
ajax();
{% csrf_token %}
</script>
我试图查找它,但我遇到的唯一例子是来自表单的ajax调用。我试图实现的是将ajax调用的输出附加到文件中。控制台告诉我,脚本标记内的csrf令牌存在语法错误 您已经将CSRF标记自己放在模板中的script标记中:这没有意义,因为它本身不是有效的Javascript 此外,虽然这不是语法错误,但您在JS文件本身中使用了Django模板变量语法,而该语法不会被解析-因此参数将作为原始字符串
“{csrf_token}}”
发送
但是,Django文档包含了的完整说明,因此您应该遵循这些说明。谢谢。
{%csrf_token%}
更像是一个无脑的添加,它试图以“简单”的方式解决它。
def ajax_request(request):
if request.POST.has_key('client_response'):
x=request.POST['client_response']
response_dict={}
response_dict.update({'server_response':'working'})
return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')
else:
return render_to_response('ajaxexample.html', context_instance=RequestContext(request))