Я делаю запрос get с fetch в приложении django, он работает в разработке, но не в продакшене, и я не могу решить проблему.

Приложение развернуто на heroku. Когда я запускаю программу на своей машине, она работает нормально, но на производстве я получаю различные ошибки. В Google Chrome в консоли я получаю следующую ошибку:

Uncaught (in promise) SyntaxError: Неожиданная лексема < в JSON в позиция 0

В Firefox ошибка в консоли выглядит следующим образом

Uncaught (in promise) SyntaxError: JSON.parse: неожиданный символ в строка 1 столбец 1 данных JSON

Я получил следующее сообщение от Часового:

Exception gaierror: [Errno 11001] getaddrinfo failed Файл "urllib3\connection.py", строка 169, in _new_connection conn = connection.create_connection( Файл "urllib3\util\connection.py", строка 73, в create_connection for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): Файл "socket.py", строка 953, в getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags):

NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x00000177DC7693A0>: Не удалось установить новое соединение: [Errno 11001] getaddrinfo failed Файл "urllib3\connectionpool.py", строка 699, in urlopen httplib_response = self._make_request( Файл "urllib3\connectionpool.py", строка 382, in _make_request self._validate_conn(conn) Файл "urllib3\connectionpool.py", строка 1010, в _validate_conn conn.connect() Файл "urllib3\connection.py", строка 353, в connect conn = self._new_connection() Файл "urllib3\connection.py", строка 181, в _new_connection raise NewConnectionError(

MaxRetryError: HTTPSConnectionPool(host='www.wordreference.com', port=443): Max retries exceeded with url: / (Причина NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000177DC7693A0>: Не удалось установить новое соединение: [Errno 11001] getaddrinfo failed')) Файл "requests\adapters.py", строка 439, in send resp = conn.urlopen( Файл "urllib3\connectionpool.py", строка 755, в urlopen retries = retries.increment( Файл "urllib3\util\retry.py", строка 574, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause))

ConnectionError: HTTPSConnectionPool(host='www.wordreference.com', port=443): Max retries exceeded with url: / (Причина NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000177DC7693A0>: Не удалось установить новое соединение: [Errno 11001] getaddrinfo failed')) (5 дополнительных кадров не были не отображаются) ... Файл "requests\api.py", строка 75, in get return request('get', url, params=params, **kwargs) Файл "requests\api.py", строка 61, in request return session.request(method=method, url=url, **kwargs) Файл "requests\sessions.py", строка 542, in request resp = self.send(prep, **send_kwargs) Файл "requests\sessions.py", строка 655, in send r = adapter.send(request, **kwargs) Файл "requests\adapters.py", строка 516, в send raise ConnectionError(e, request=request)

Ниже приведен наиболее подходящий код. У меня нет большого опыта и я не знаю, как определить проблему, я буду очень благодарен за любую помощь, которую я могу получить.

views.py

def translate_word(request, word):
wr = WordReference('es', 'en')
wr_obj = wr.translate(word)
entries = wr_obj['translations'][0]['entries']
twlist = []
for entry in entries:
    for dict in entry['to_word']:
        if dict['meaning'] not in twlist:
            twlist.append(dict['meaning'])

return JsonResponse({"twlist": twlist}, safe=False)

demo.js

translate: (word) => {
  fetch(`/translate/${word}`, {
    headers:{
      'Content-Type': 'application/json',
      'Accept': 'application/json',
      'X-Requested-With': 'XMLHttpRequest', //Necessary to work with request.is_ajax()
  },
  })
  .then(response => {
    return response.json()
  })
  .then(data => {
    // code to display the data on the html, the error occurs in the previous .then
  })
},
Вернуться на верх