Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自外部javascript文件的Django ajax请求_Javascript_Ajax_Django_Django Csrf - Fatal编程技术网

来自外部javascript文件的Django ajax请求

来自外部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 : '

我正在尝试从外部javascript文件进行ajax调用

ajax.js

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))