为什么从远程AWS S3服务器下载json文件时axios GET错误

Kee*_*isk 3 json xmlhttprequest reactjs axios

在 React 应用程序中,我尝试使用以下代码从 AWS S3 下载 .json 文件:

componentDidMount() {

    axios.get(`https://amplify-NotRealUrl-dev-333333-deployment.s3.us-east-2.amazonaws.com/rulesSummaryData2.json`)
      .then(response => {
        console.log("SUCCESS", response);
      }, error => {
        console.log("ERROR", error);
      });
}
Run Code Online (Sandbox Code Playgroud)

在浏览器控制台窗口中,我看到以下错误:

错误错误: XMLHttpRequest.handleError (xhr.js:83) 处的 createError (createError.js:16) 处出现网络错误

JSON 文件对公众广泛开放,没有权限,我可以将 url 放入浏览器中并无需身份验证即可下载。另外,我可以在 Postman 中成功执行 GET。另外,我插入了一个开放的 api GET url,而不是 .json,但它确实返回成功。.json 似乎有问题。不过,我已经看到许多链接显示了与 .json 类似的功能。我缺少一些东西!

附加信息(更新): 无论我使用什么 URL,都会发生此错误。例如,如果我使用 axios.get( https://ThisIsNotAValidURLThisIsNotAValidURLThisIsNotAValidURLThisIsNotAValidUR.json)

我仍然收到完全相同的错误。此外,我使用了另一个基础 React 应用程序,以确保该项目不是原因,但结果相同。

Aru*_*han 5

没有明确跟随你。如果你说你可以https://bucket-name.s3.us-east-2.amazonaws.com/rulesSummaryData2.json在邮递员中访问,那么对我来说这看起来像是一个cors问题。

S3 存储桶的 Cors

如果您尚未执行此操作,请在 S3 存储桶中配置以下 Cors 策略。

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

参考:

如何将 Cors 配置添加到 S3 存储桶 - https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html