"Uncaught RangeError: Превышен максимальный размер стека вызовов в Dt (jquery.min.js:2)"

Я новичок в программировании с django и сейчас я застрял на этом этапе, где мне нужно переместить данные из js переменной в Django представление или что-то в этом роде. Но на данный момент, если я пытаюсь передать данные из js в Django с помощью функции ajax post, он говорит об ошибке не пойманного диапазона. Я не уверен, где я делаю ошибку, но было бы очень полезно, если бы кто-нибудь мог мне помочь. Действительно очень нужна помощь!!!

Сообщение об ошибке:

Uncaught RangeError: Maximum call stack size exceeded at Dt (jquery.min.js:2)

Код сценария

<script>

    var URL = "{% url 'textFromInputFile' %}";
    var textOfFile = document.getElementById('fileinput');      
    
        textOfFile.addEventListener('change', function(){
            
            var fr = new FileReader();
            fr.onload = function(){
                document.getElementById("textarea").value = fr.result;
            };
            fr.readAsText(this.files[0]);
            
        });            
       
        function getText(){  
        
            $.ajax({
                type: "POST",
                url: "/textFromInputFile",
                data: {"textOfFile":textOfFile},
                dataType: "String",
                success: function(data){
                    alert("ok")
                },
                failure:function(){
                    alert("failed")
                }
            },);}          
        

        
            $('button').click(function(){
            getText();
        });

</script>

views.py

def textFromInputFile(request):
if request.method == 'POST':
    if 'textOfFile' in request.POST:
        textOfFile = request.POST['textOfFile']
        #need to do something here
        return HttpResponse('success')  #if everything is o.k
    else:
        return HttpResponse('failed!!')

urls.py

urlpatterns = [
path('', views.index, name='index'),
path('signin.html', views.signin, name='signin'),
path('index.html', views.index, name='index'),
path('home.html', views.home, name='home'),
path('logoutPage.html', views.logout, name='logout'),
path('home.html', views.textFromInputFile, name='textFromInputFile'),

]

Ошибка может быть вызвана несколькими попытками Ajax сериализовать ваш JSON. Поэтому лучше сериализовать его перед отправкой с помощью JSON.stringify (). Попробуйте изменить вашу функцию ajax, данные следующим образом:

data:JSON.stringify({"textOfFile":textOfFile}),

Другой способ - просто добавить это в функцию ajax:

$.ajax({
   type: "POST", url: "/textFromInputFile", 
   data: {"textOfFile":textOfFile},
   dataType: "String", 
   success: function(data){ 
     alert("ok") 
   }, 
   failure:function(){ 
      alert("failed") 
   },
   cache: false,
   contentType: false,
   processData: false,
},);
Вернуться на верх