關於html異步加載外部json文件報錯問題


一. HTML代碼如下:

參考網站(echarts-JSON請求數據):https://blog.csdn.net/you23hai45/article/details/51585506

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>echarts-JSON請求數據</title>
        <script type="text/javascript" src="./jquery.min.js" ></script>     //js文件和data.json都在同一文件夾
        <script type="text/javascript" src="./echarts.min.js"></script>
        <script>
            $(document).ready(function(){
                var chart = document.getElementById('chart');
                var chartData = echarts.init(chart);
    
                chartData.setOption({
                    title: {
                        text: '異步數據加載示例'
                    },
                    tooltip: {},
                    legend: {
                        data:['銷量']
                    },
                    xAxis: {
                        data: []
                    },
                    yAxis: {},
                    series: [{
                        name: '銷量',
                        type: 'bar',
                        data: []
                    }]
                });
                
                $.get('./data.json').done(function (data) {
                    
                    console.dir("data:"+data);  //看看json的數據
                    console.dir("data.name:"+data.name); // object
                    console.dir("data.data:"+data.data); // object
                    console.dir(typeof(data)); //控制台輸出的格式

                    // 填入數據
                    // var data = JSON.parse(data);//加上這行,將Sring類型的data轉換為JSON形式
                    chartData.setOption({
                        xAxis: {
                            data: data.categories
                        },
                        series: [{
                            name: '銷量',
                            data: data.data
                        }]
                    });
                
                });
                
                function eConsole(param) 
                {
                    console.dir(param);
                }
                
                chartData.on("click",eConsole);
            });
 
        </script>
    </head>
    <body>
        <div id="chart" style="width: 900px; height: 600px;"></div>
    </body>
</html>

二. data.json文件如下:

{
    "name": [
        "蘋果",
        "橘子",
        "荔枝",
        "桃子",
        "栗子",
        "梨子",
        "柿子"
    ],
    "data": [
        500,
        280,
        386,
        190,
        107,
        207,
        452
    ]
}

 

 三. 以上面的方式訪問會報錯。如下:

 

 報錯內容:jquery.min.js:2 Access to XMLHttpRequest at 'file:///C:/Users/14620/Desktop/Echarts/data.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

四. 解決方法:

參考網站(【調試錯誤】Access to XMLHttpRequest at file:E590/ceshi.json from origin null):https://blog.csdn.net/OrangeChenZ/article/details/84986648

谷歌不允許這樣訪問。
本地部署網站web。
解決方式一:將html頁面部署到服務器再訪問。

如何部署?

第一步:控制面板->程序與功能->啟用或關閉windows功能

Internet Information Services 前面的復選框勾上。

 

 第二步:我的電腦右鍵->管理->添加網站

 

 

 

 注:主機名不填,用localhost:1213訪問本地服務器。

報錯1:

HTTP 錯誤 403.14 - Forbidden

Web 服務器被配置為不列出此目錄的內容。

解決1:

啟用目錄瀏覽。

 

 

報錯2:

HTTP 錯誤 401.3 - Unauthorized 由於Web服務器上此資源的訪問控制列表(ACL)配置或加密設置。

解決2:

網站1213右鍵->編輯權限->安全->添加Everyone權限

 

 

報錯3:

HTTP 錯誤 401.2 - Unauthorized 由於身份驗證頭無效,您無權查看此頁

解決3:

打開IIS管理器,操作如下:

1.功能視圖--身份驗證--匿名身份驗證--編輯--選擇應用程序池標識,啟用匿名身份驗證;
2.功能視圖--授權規則--右鍵添加允許規則--選擇所有匿名用戶;
3.保證虛擬目錄訪問權限,可以添加everyone用戶授予所有權限!

至此:localhost:1213成功訪問。

 

 打開HTML文件:

 

 (over)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM