【问题标题】:use a specific value from JSON response from GET request via fetch --> to a POST request通过提取使用来自 GET 请求的 JSON 响应的特定值 --> 到 POST 请求
【发布时间】:2023-02-03 18:52:13
【问题描述】:

这里的主要目标是在第二个 POST 请求中使用响应的一部分。

让我解释 - 给定以下端点:

https://www.example.com/Applications/?api-version=1&_cacheToken=1675420688869

向端点发送 GET 请求的响应是:

{"field1":"","Items":[{"Name":"app:\/appname","field2":"appnumber","field3":"appvers","Status":"Ready","Parameters":[],"health":"Ok","kind":"numbers","ids":{"id":[]},"met":{"met1":{}},"Id":"1"}]}

我只想使用“appname”的值。 因此我使用它如下 -

---SNIP---
...
.then(data => {
  const appname = data.Items[0].Name;
  const appname_updated = appname.replace('app:/', '');
...
---SNIP---

我想将它与第二个获取请求一起使用,但这次是以 POST 的形式(在端点本身和正文中):

return fetch('https://www.example.com/deploy/'+appname_updated+'/?api-version=1', {
    method: 'POST',
    headers: { 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json; charset=utf-8' },
    mode: 'no-cors',
    body: JSON.stringify({
      appname: appname_updated,
      field1: "blah"
    })
  });
})

这怎么可能做到?所以第一个GET会被发送,收到200 ok, 一旦它获得 200 状态,POST 应该立即发送正确的 值填充。

到目前为止,无论我尝试了什么,似乎都没有发送第二个 POST 请求。 (我已经用 async/await 等试过了)

谢谢

【问题讨论】:

    标签: javascript html fetch


    【解决方案1】:

    'no-cors' 告诉 fetch 如果您尝试做任何需要 CORS 许可的事情,则静默失败。

    使用 'Content-Type': 'application/json; charset=utf-8' 发出跨源请求需要 CORS 的许可。

    不要使用'no-cors'

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多