Django Ajax将我重定向到另一个页面

时间:2018-08-19 19:17:14

标签: jquery ajax django

我的Ajax继续将我重定向到页面http://localhost:8000/process/ 即使它不应该。我对ajax相当陌生,我只是从youtube视频中获得了此ajax代码。

HTML

<form action= "{% url 'process' %}" method="POST" enctype="multipart/form-data" class="w-100" id="form_submit">
    {% csrf_token %}   
    <div class="col-sm-4 mx-auto">
        <input type="file" name="pcap_file" id="pcap_file" required="True" class="form-control-file text-center w-100">
    </div>
    <div class="row h-50">
        <div class="col-sm-3 mx-auto">
            <input type="submit" value="testing" class="w-100" id="testbtn" data-toggle="modal" data-target="#exampleModal">
        </div>
    </div>
</form>

脚本

<script type = "text/javascript">

    $(document).on('submit','#form_submit',function(e){
        e.preventDefault();

        $.ajax({
            type:'POST',
            url:'/process/',
            data:{
                pcap_file:$('#pcap_file').val    
                csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]')
                .val()
            },
            success:function(){
                alert("okay")
            }
         });      
     });
</script>

Views.py

def process(request):

    if "GET" == request.method:
        return HtppResponce("error")

    myfile  = request.FILES["pcap_file"]
    print(myfile)

    #classpercent = SOM(myfile)

    return HttpResponse('')

URL

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^process/$',views.process, name='process'),
    path('admin/', admin.site.urls),

]

发布请求的状态码为OK。

1 个答案:

答案 0 :(得分:0)

您的JavaScript应该看起来像这样:

$(function() {
    $('#form_submit').submit(function upload(e) {
        e.preventDefault();
        var data = new FormData($('#form_submit').get(0));

        $.ajax({
            url: $(this).attr('action'),
            type: $(this).attr('method'),
            data: data,
            cache: false,
            processData: false,
            contentType: false,
            success: function(data) {
                alert("okay");
            }
        });
        return false; // A little hack for old browsers if you are using jQuery 2
    });
});
相关问题