【问题标题】:How to resolve Network Failure net::ERR_NAME_NOT_RESOLVED如何解决网络故障 net::ERR_NAME_NOT_RESOLVED
【发布时间】:2017-04-17 12:22:46
【问题描述】:

我正在向 AWS 发出 Get 请求。通过浏览器(Javascript)获取存储桶列表。我收到以下错误:

加载资源失败:net::ERR_NAME_NOT_RESOLVED。 当我将区域留空时,出现以下错误。 请查看上面的屏幕截图以了解我遇到的错误。

这是我的代码:

<!DOCTYPE html>
<html>
    <head>

        <script src="https://sdk.amazonaws.com/js/aws-sdk-2.2.41.min.js"></script>

    </head>
    <body>

        <div id="status"></div>
        <ul id="objects"></ul>
    </body>

    <script type="text/javascript">
    AWS.config.update({accessKeyId: 'key', secretAccessKey: 'GwP/secretkey/XkoAd89kGs'});
        // Configure your region
        AWS.config.region = 'US Standard';

        var bucket = new AWS.S3({params: {Bucket: 'rentonclick'}});
    bucket.listObjects(function (err, data) {
        if (err) {
            console.log('error',err);
        } else {
            document.getElementById('status').innerHTML =
                'Loaded ' + data.Contents.length + ' items from S3';
            for (var i = 0; i < data.Contents.length; i++) {
                document.getElementById('objects').innerHTML +=
                    '<li>' + data.Contents[i].Key + '</li>';
            }
        }
    });

    </script>

</html>

我也在分享 plunker - https://plnkr.co/edit/uw9j9tpfvJ4cRqjbF7nC?p=preview

【问题讨论】:

    标签: javascript amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    您的 Amazon AWS 区域似乎无效。

    请在您的 Amazon AWS 控制面板中查找您所在的区域。它应该是这样的。

    AWS.config.region = 'us-east-1';

    祝你好运。

    【讨论】:

    • 嗨,据我了解,该区域应该是为存储桶设置的区域。我的存储桶的区域与我提到的相同。所以我认为这可能不是原因。
    • 嗨,我自己试过了,s3 不使用区域。因此,在这种情况下,我会将区域留空。(AWS.config.region = '';)在区域为空的情况下,我会得到以下 URL:rentonclick.s3.amazonaws.com 这是您的存储桶吗?
    • 是的,这是我的存储桶。但是在 AWS 文档中,他们提到要使用区域进行任何获取请求。将区域留空是什么意思?非常感谢你的帮助。 :)
    【解决方案2】:

    我们需要像这样配置 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>
            <AllowedMethod>POST</AllowedMethod>
            <AllowedMethod>DELETE</AllowedMethod>
            <ExposeHeader>ETag</ExposeHeader>
            <AllowedHeader>*</AllowedHeader>
        </CORSRule>
    </CORSConfiguration>
    

    【讨论】:

      【解决方案3】:

      当我使用vue axio时,例如:

      var config = {
         site: 'http://192.168.0.71:9000/doapi/',
      }
      export const API_ROOT = 'http://'.concat( config.site)
      did you find something wrong: API_ROOT = 'http://'+ 'http://192.168.0.71:9000/doapi/';
      

      'http://' 已经声明了两次。删除它。好的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 2018-02-20
        • 1970-01-01
        • 1970-01-01
        • 2012-09-13
        相关资源
        最近更新 更多