如何使用 fetch 将 URL 进一步传递到响应中?

结缔组织

我有这个获取请求,我接受它

  1. 给我发个声明!!如果满足某些条件
  2. 在特定时间后将我重定向到另一个页面 问题是如果我发送 json resp 链接指向默认的一个未来,这两个似乎不能一起工作,我无法在响应中进一步传递 URL。

// Server side 
exports.redirect = async (req, res, next) => {
        //res.status(403)
        res.json({ Error: 'Plase try again' })
        res.redirect('/signup')
}

// Client side
fetch('/redirect', {
      credentials: "same-origin",
      mode: "same-origin",
      method: 'POST',
      //redirect: 'follow',
      headers: {
        "Authorization": `Bearer ${jwt}`,
        "Content-Type": "application/json"
      },
      body: JSON.stringify(inputJSON)
      })
      .then(resp => {
        console.log(resp.url)
        return Promise.all([resp.json()])
      }
      ).then(data => {
        console.log(data);
        let jsonData = data[0]
        let div = document.querySelector(".form-group");
        div.insertAdjacentHTML('afterend', `<div id="response">${jsonData.Error}</div>`)
        //setTimeout(windows.location = data.url, 5000);
      })
      .catch((error) => {
        console.error(error);
      }).catch(err => {
        if (err === "server") return
        console.log(err)
      })

  }
})

某些表演

对于一般情况下,当您想将某些东西从上层传递.then到下层时,您就快到了,您只需要将resp.url加到Promise.all您已有数组中:

.then(resp => {
    return Promise.all([resp.json(), resp.url])
}
).then(([data, url]) => {
    const div = document.querySelector(".form-group");
    div.insertAdjacentHTML('afterend', `<div id="response">${data.Error}</div>`);
    setTimeout(() => window.location = url, 5000);
})

但它没有多大意义,既具有响应.json() 重定向-选择一个或其他。我只推荐一个.json

exports.redirect = async (req, res, next) => {
        res.json({ Error: 'Plase try again', url: '/signup' });
}
.then(res => res.json())
.then(result => {
  div.insertAdjacentHTML('afterend', `<div id="response">${result.Error}</div>`);
  setTimeout(() => window.location = result.url, 5000);
})

还要确保将回调传递给setTimeout,并使用window.location,而不是windows.location

你的最后一个.catch(err => {块也是多余的,它永远不会被输入,无论如何也没有任何意义 - 随意完全删除它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串转换为int []并检索数组以进行进一步处理

将数据传递到更进一步的中间件

如何将枚举案例值保存到UserDefaults中以进一步使用

不推荐使用each()函数。进一步调用PHP 7.2时将禁止显示此消息

如何捕获将选择器传递到文档中不存在的jQuery()的情况,以阻止进一步的可能的错误或遗漏?

将PDF转换/写入为RAM,成为类似文件的对象,以便进一步使用它

我如何迭代变量以传递到http标头参数中以进行进一步迭代

发送回响应后,如何使Django视图进一步运行?

如何重新缩放图以将群集(节点)进一步分开并在igraph中命名群集?

如何将循环的最终结果作为int进行进一步使用?

我如何推我的柱子将固定高度进一步包裹

从网页中抓取URL,以进一步从第一次抓取中抓取单个URL(重新使用抓取数据中的URL)

如何用“ ...”传递一些(但不是全部)进一步的参数

Python 2.7-如何计算文件中的行数并进一步使用结果

如何返回COUNT(*)并将其存储在变量中以在VBscript中进一步使用

如何在超级测试中存储响应主体以用于进一步的测试案例

Codeigniter模型:如何使用查询中的值进行进一步的计算?

使用并进一步解析form.errors.as_json以在Django中返回http响应

将程序的结果用于进一步的条件?

如何将关联数组从 PHP 传递到 HTML 以进行进一步处理

存储 xmlhttp 响应以供进一步使用

如何进一步验证 Java 中的 jTextBox 以允许使用点和逗号?

如何将工作表设置为变量以用于进一步的方法(带循环)

如何使用 R 将目录路径的一部分定义为变量以供进一步使用?

将元素添加到 *args 列表并进一步传递结果

如果节点(循环内)中没有内容,如何为 rvest 中的缺失结果编写 NA 进一步如何将变量与结果合并

如何将 json 文件中的嵌套字典进一步解析为 Python 中的数据帧

如何使用 fetch 将正确的 url 传递给 asp.net 控制器?

将 request.get 中的值分配给 const 以供进一步使用。节点 Js