我正在尝试从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所说的解决方案,它的工作就像一个魅力。我必须使用代理进行请求。