Получение ошибки 'Broken Pipe' при AJAX-запросе в Django

Я постоянно сталкиваюсь с ошибкой "Broken pipe" при выполнении AJAX-запроса в Django. Запрос предназначен для получения текста и выбранных языков, а также других данных, затем перевести их в представлениях, а переведенный текст отобразить в окне вывода.

Вот мой фрагмент кода AJAX:

enter image description here

Вот код AJAX:

    var outputTextarea = document.getElementById("output-textarea");


    // AJAX request
    $(document).ready(function () {
        $('.translate-button').click(function () {
            // Retrieve input data
            var fromLanguage = document.getElementById("from-language-selectbox").selectedOptions[0];
            var toLanguage = document.getElementById("to-language-selectbox").selectedOptions[0];
            var isFlashcard = document.getElementById("is-flashcard-switch2").checked;
            var selectedDecks = document.getElementById("decks-list-selectbox").selectedOptions;
            console.log(selectedDecks)
            var selectedDeckValues = [];
            var inputText = document.getElementById("input-textarea").value;
            console.log(inputText);
            for (var i = 0; i < selectedDecks.length; i++) {
                selectedDeckValues.push(selectedDecks[i].textContent);
            }
            console.log(selectedDeckValues);
            var outputTextarea = document.getElementById("output-textarea");
            $.ajax({
                url: '{% url "mainapp:translator" %}',
                data: {
                    'input_text': inputText,
                    'is_flashcard': isFlashcard,
                    'decks': selectedDeckValues,
                    'from_language': fromLanguage.textContent,
                    'to_language': toLanguage.textContent,
                },
                dataType: 'json',
                success: function (data) {
                    console.log("success");
                    outputText = data.output_text;
                    outputTextarea.textContent = outputText;
                },
                error: function (xhr, status, error) {
                    console.log("Error occurred: " + error);
                }
            });
        });
    });

А вот и вид:

    def translator(request):
        """View for translatation."""
    
        if request.headers.get("x-requested-with") == "XMLHttpRequest":
            #Retrieve data from AJAX request
            input_text = request.GET.get("input_text")
            is_flashcard = request.GET.get("is_flashcard")
            if is_flashcard == "true":
                is_flashcard = True
            else:
                is_flashcard = False
            decks = ["superdeck", "talja"] #request.GET.get("decks")
            from_language = Language.objects.get(name=request.GET.get("from_language"))
            from_language_symbol = from_language.symbol
            to_language = Language.objects.get(name=request.GET.get("to_language"))
            to_language_symbol = to_language.symbol
            #Translate text and create Translation object
            output_text = ts.translate_text(query_text=input_text, translator="google",from_language=from_language_symbol, to_language=to_language_symbol)
            translation = Translation(input_text=input_text, output_text=output_text,is_flashcard=is_flashcard, user=request.user, from_language=from_language, to_language=to_language)
            translation.save()
            # Create Flashcard objects and manage all selected decks
            if is_flashcard:
                for deck_name in decks:
                    deck = Deck.objects.get(name=deck_name)
                    flashcard = Flashcard(front=input_text, back=output_text,  user=request.user, deck=deck)
                    flashcard.save()
            return JsonResponse({"output_text":output_text})         
        else:
            translator_form = TranslatorForm(request.user)
            input_text = ""
            output_text = ""
    
        return render(request, "mainapp/translator.html", {"translator_form":translator_form, "input_text":input_text, "output_text":output_text})

В случае возникновения вопросов, не стесняйтесь спрашивать, я предоставлю необходимые части кодов и т.д.

Вернуться на верх