Недопустимый URL | ошибка типа

#javascript

#javascript

Вопрос:

При нажатии кнопки на моем интерфейсе (соответствующая часть показана ниже)

 async function getSample() {
  const res = await fetch('/lookup/url');
  const data = await res.text();
  console.log(data);
}
document.getElementById('button').addEventListener('click', getSample);

async function getSample() {
  fetch('http://localhost:3000/lookup/url')
    .then(response => response.text())
    .then(data => console.log(data));
}
 

Я получаю эту ошибку в терминале моего сервера узлов:

 TypeError [ERR_INVALID_URL]: Invalid URL: url
 

и это в моей консоли:

 Fetch failed loading: GET "http://localhost:3000/lookup/url"
 

Может кто-нибудь дать несколько советов относительно того, что я могу делать неправильно и как я мог бы исправить?

Не то, чтобы это имело значение, но серверная часть является express

Корректировка Re: Комментарии

 async function getSample() {
    const res = await fetch('/lookup/url');
    const data = await res.text();
      console.log(data);
    
      document.getElementById('button').addEventListener
       ('click', getSample);
    
        fetch('http://localhost:3000/lookup/url')
        .then(response => response.text())
        .then(data => console.log(data));
    }
 

Комментарии:

1. Я думаю, что это может быть проблемой CORS. Интерфейс не localhost:3000 включен, верно?

2. @sebasaenz интерфейс отображается, когда я обращаюсь к localhost: 3000.

3. Почему у вас есть два определения getSample() ?

4. @Barmar Разве мне не нужно определить его, а затем использовать?

5. Вы объявляете одну и ту же функцию дважды? Вам не нужно это делать, достаточно одного раза

Ответ №1:

Избавьтесь от второго определения getSample() . Вам нужно только одно определение функции, и лучше использовать относительный URL-адрес для доступа к ресурсам на том же сервере, что и интерфейс.

 async function getSample() {
  const res = await fetch('/lookup/url');
  const data = await res.text();
  console.log(data);
}
document.getElementById('button').addEventListener('click', getSample);