Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 13921

Getting 'Broken Pipe' Error with AJAX Request in Django

$
0
0

I keep encountering a "Broken pipe" error when making an AJAX request in Django. The request is intended to retrieve text and selected languages, among other data, then translate it in the views, with the translated text appearing in the output window.

Here's my AJAX console output:

enter image description here

Here is AJAX code:

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

And here is view:

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

In case of any questions, feel free to ask I will provide with needed parts of codes etc.


Viewing all articles
Browse latest Browse all 13921

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>