@SerGeGR

Как сбросить запрос на сервер?

Делаю словарь с помощью Yandex translate API. Сделал так, чтобы после перевода слова, строка ввода очищалась, но сам запрос при этом не очищается. То есть, если не перезагружая страницу менять языки перевода и наживать на "перевести", то будет переводиться изначально введенное слово. Как сделать так, чтобы после нажатия на "перевод" запрос обнулялся и требовалось бы ввести новое слово?

var url = 'https://translate.yandex.net/api/v1.5/tr.json/translate';
var API_KEY = тут мой ключ;

document.querySelector('#translate_btn').addEventListener('click', function(){
  var req = new XMLHttpRequest();
  var word = document.getElementById("translate_form"); //поле ввода слова
  var langTranslate = document.querySelector('.lang_list');//выбор языка перевода
  var translate = document.querySelector('.translate');//блок, куда вставляется перевод

  url += '?key=' + API_KEY; 
  url += '&text=' + word.value; 
  url += '&lang=' + langTranslate.value;

  word.value = "";

  req.open('get', url, true);
  req.send();
  req.addEventListener('load', function () {
    console.log(req.response); 
    var response = JSON.parse(req.response); 
    if (response.code !== 200) {
        translate.innerHTML = 'Произошла ошибка при получении ответа от сервера:\n\n' + response.message;
        return;
    }

    if (response.text.length === 0) {
        translate.innerHTML = 'К сожалению, перевод для данного слова не найден';
        return;
    }

    translate.innerHTML = response.text.join('<br>');
  });
});


В примере на скриншоте изначально было введено слово "кот".
5d9c9788a6111637340493.jpeg
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
...
document.querySelector('#translate_btn').addEventListener('click', function(){
  var word = document.getElementById("translate_form"); //поле ввода слова

  // добавьте эти две  строчки!!!!!
  if( !word.value ) return;
  url = 'https://translate.yandex.net/api/v1.5/tr.json/translate';


  var langTranslate = document.querySelector('.lang_list');//выбор языка перевода
  var translate = document.querySelector('.translate');//блок, куда вставляется перевод
  var translate = document.querySelector('.translate');//блок, куда вставляется перевод
  var req = new XMLHttpRequest();

...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект