ReactJS:提取结果为“尝试提取资源时出现NetworkError”。

时间:2019-06-08 22:50:00

标签: reactjs fetch

我正在尝试从ReactJS的外部API获取。

这是我用来获取的函数:

fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`
    )
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

当我console.log(ibanResponse)(使用Hooks)时,我得到一个

  

访问地址为   'https://www.iban-test.de/api/check/XXXX?authcode=XXXX'   来自来源“ http://localhost:3000”的信息已被CORS政策阻止:   对预检请求的响应未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。如果不透明的响应满足您的需求,请设置请求的   模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。

     

TypeError:无法获取

     

index.js:30跨域读取阻止(CORB)阻止了跨源   响应   https://www.iban-test.de/api/check/XXXX?authcode=XXXX   MIME类型为application / json。看到   https://www.chromestatus.com/feature/5629709824032768了解更多   详细信息。

在网络检查器中,我可以看到来自API的200响应,如果从浏览器发出请求,它就可以正常工作。

如何解决此提取请求?

我已经尝试过:

fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`,
      {
        headers: {
          "Access-Control-Allow-Origin": "*"
        }
      }
    )
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

这:

    fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`
    )
      .then(response => response.json())
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

但是它返回相同的错误。

编辑:我正在向所有搜索此问题的人编辑问题。我实现了@Matin Sasan和@sideshowbarker所说的解决方案,它的工作就像一个魅力。我必须使用代理进行请求。

0 个答案:

没有答案