2016-07-23 11 views
1
ここ

は私がキャッチされない例外TypeError:不正な呼び出し

Uncaught TypeError: Illegal invocation 

がどのように使用して画像を送信することができ、このエラーを取得する]をクリックし

では、提出スクリプト

<script type="text/javascript"> 
    $('#submit').click(function() { 

    var files = $("[type='file']")[0].files; 

    console.log(files) 

    var data = { 
     'images[]' : files , 
     csrfmiddlewaretoken: '{{csrf_token}}' 
     } 

    $.ajax({ 
      type: "POST", 
      url : "{% url 'data_entry' %}", 
      data: data, 
      success: function(data) { 
      }, 
      error: function(response, error) { 
     } 
    }); 
}); 
</script> 
HTMLここ

<input id="fileUpload" multiple="multiple" type="file"/> 
<ul> 
<li><div id="image-holder"></div></li> 
<li><input type="submit" value="Next"></li> 
</ul> 

されていますジャンゴビューへのjquery?

答えて

1

Jqueryはファイルを処理しないように指示する必要があります。また、データファイルにファイルを追加する回避策が見つかりました。これが役に立ちますようお願いいたします。

そのうちIllegal invocationエラーは、ajaxがオブジェクトを処理しないためです...そのため、私たちはajaxに入る前にフォームをシリアル化していますあなたの場合は、ファイルオブジェクトを直接注入してからエラーになります。

var data = new FormData(); 
$.each(files, function(key, value) 
{ 
    data.append(key, value); 
}); 

およびAjaxで...

$.ajax({ 
    .... 
    processData: false, 
    .... 
+0

何CSRFは?データを処理しないと403禁じられたエラーを投げます –

+0

私は 'csrf_exempt'でテストしました –

+0

これはcsrf token.isを含んでいないという悪いポリシーではありません。 –

関連する問題