IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 如何实现html静态文件通过本地文件获取数据 -> 正文阅读

[开发工具]如何实现html静态文件通过本地文件获取数据

有一个这样的需求,并且最后要求是可点击的html静态文件,不要链接数据库
在这里插入图片描述

由于前端接触不多,最开始就尝试了一下之前比较熟练的ajax

        var data = 0;
        $.ajax({
            url: '../sys.log',
            type: 'GET',
            data: data,
            async:true,    //是否异步
            dataType:"jsonp",    //跨域json请求一定是jsonp
            // jsonp: "callbackparam",    //跨域请求的参数名,默认是callback
            //jsonpCallback:"successCallback",    //自定义跨域参数值,回调函数名也是一样,默认为jQuery自动生成的字符串
            // data:{"query":"civilnews"},    //请求参数
            // headers:{//请求头
            //     'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
            // },
            headers:{//请求头
                'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
            },
            success :function (data) {//这里的请求发送到服务器(控制器里
                // alert(data);
                var str=new String();
                var arr=new Array();
                str=data;
                //可以用字符或字符串分割
                arr=str.split('\n');
                var li_str = "";
                for(var i=0;i<arr.length;i++)
                {
                    // alert(i+arr[i]);
                    li_str = li_str+"<li class=\"layui-timeline-item\">\n" +
                        "                              <i class=\"layui-icon layui-timeline-axis\">&#xe63f;</i>\n" +
                        "                              <div class=\"layui-timeline-content layui-text\">\n" +
                        "                                <h3 class=\"layui-timeline-title\">2019-03-3"+i+"</h3>\n" +
                        "                                <p>\n" +
                        arr[i]+
                        "\n" +
                        "                                </p>\n" +
                        "                              </div>\n" +
                        "                            </li>";
                }
                $("#ul_for").html(li_str);
            },
        });

然后发现从idea中直接打开可以,但是并不能通过静态文件读取到数据。
以为在idea中会自动把请求的地址变为http://localhost:63342/templates/system/log.html?
然而通过本地打开时是
file:///D:/1waibao/java-shop/shop-main/src/main/resources/templates/system/log.html
错误信息Access to XMLHttpRequest at 啊 from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
由于通过链接直接访问本地文件被浏览器识别为十分危险的行为,好像就禁用了(火狐没有禁用),所以不通过服务器的话是没法用ajax访问的。


于是使用jsonp

    <script>
        function dataJson(data) {
            console.log(data);
            //
            // alert(data.data[0].content);
            // alert(data.data[1].content);
            // alert(data.data[2].content);
            //
                    var li_str = "";

            for(var i=0;i<data.data.length;i++)
                {
                    // alert(i+arr[i]);
                    li_str = li_str+"<li class=\"layui-timeline-item\">\n" +
                        "                              <i class=\"layui-icon layui-timeline-axis\">&#xe63f;</i>\n" +
                        "                              <div class=\"layui-timeline-content layui-text\">\n" +
                        "                                <h3 class=\"layui-timeline-title\">"+data.data[i].date+"</h3>\n" +
                        "                                <p>\n" +
                        data.data[i].content+
                        "\n" +
                        "                                </p>\n" +
                        "                              </div>\n" +
                        "                            </li>";
                }
                $("#ul_for").html(li_str);
        }
    </script>
    <!-- 引入要放在后面 -->
    <script type="text/javascript" src="../sys.log?cb=dataJson"></script>

//文件数据以及格式
dataJson({
  "status": "success",
  "data": [
    {
    "date": "2015-01-04",
    "content": "hello world"
    },
    {
      "date": "2015-01-11",
      "content": "这是sys.log的第二行"
    },
    {
      "date": "2015-01-18",
      "content": "这是sys.log的第三行"
    }
  ]
})

成功获取
在这里插入图片描述

最关键的参考代码通过Ajax读取本地json文件,提示跨域的原因和解决方法

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:38:04  更:2021-08-11 12:40:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 13:38:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码