ReactJS:在“中获取结果”;尝试获取资源时出现网络错误。”;
我正在尝试从ReactJS中的外部API获取 这是我用来获取的函数:ReactJS:在“中获取结果”;尝试获取资源时出现网络错误。”;,reactjs,fetch,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(ibanRespo
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
)时,我得到一个
取
''
来自源“”已被CORS策略阻止:
对飞行前请求的响应未通过访问控制检查:否
“Access Control Allow Origin”标头出现在请求的服务器上
资源。如果不透明的响应满足您的需要,请设置请求的
模式设置为“无cors”,以获取禁用cors的资源
TypeError:获取失败
js:30跨源读取阻塞(CORB)阻塞跨源
响应
使用MIME类型application/json。看见
更多
细节
在network inspector中,我可以看到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说,效果非常好。我必须使用代理来发出请求。访问控制允许来源在响应上,而不是请求上。请参阅该站点仅显示了一个PHP(服务器端)示例,因此可能无法在浏览器中从JavaScript调用(不设置代理)。代理URL:将代码更改为
fetch(`https://cors-anywhere.herokuapp.com/https://www.iban-test.de/api/check/${input}?authcode=${IBAN\u test\u api}')
。有关说明,请参阅“感谢各位”部分答案中的“如何使用CORS代理解决“无访问控制允许原始标头”问题部分。在任何地方使用cors都解决了这个问题!