繁体   English   中英

页面加载时出错,而不是表单提交后?

[英]Error when page loads, instead of after form submit?

当我打开本地主机时,我收到以下错误Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': Failed to parse URL from //at getData ((index):60)

哪个指向这些代码行

 const response = await fetch(url, {

&

getData(`/${url}`)

我不确定为什么在加载页面时会收到此错误,因为我应该只在搜索某些内容时得到类似的东西吗?

这是我指的更大的代码块:

document.getElementById('search').addEventListener('submit', function(e) { e.preventDefault(); getData(); })

const form = document.getElementById('Submit')
var formResult = new FormData(form);
const url = '/' + encodeURIComponent(formResult.get("search")); 

async function getData(url = '', data = {}) {
    
  const response = await fetch(url, {
      method: 'GET',
      mode: 'cors',
      cache: 'no-cache',
      credentials: 'same-origin',
      headers: {
        'Content-Type': 'application/json'
      },
    });
    return response.json();
  }

  getData(`/${url}`)
  .then(data => {
    console.log(data);
  })

任何见解将不胜感激。

为清楚起见后端:

app.get('/:url', async function (req, res) {
  console.log(req.params.url);
  try {
    await whoisssubmit.init();
    const site = await whoisssubmit.open(decodeURIComponent(req.params.url));
    const data = await site.analyze();

    return res.status(200).json(data);

  } catch (ex) {
    console.log(ex);
    return res.status(500).json({ message : "Oops." });
    
  }});

实际上,您在提供的代码段末尾调用getData()

// Add url
const url = 'urlToApi';

document.getElementById('search').addEventListener('submit', function(e) { e.preventDefault(); getData(url).then(response => console.log(response)); })    
async function getData(url = '', data = {}) {        
  const response = await fetch(url, {
    method: 'GET',
    mode: 'cors',
    cache: 'no-cache',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/json'
    },
  });
  return response.json();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM