跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • chrome 浏览器能否让本地的 html 通过 ajax 加载本地文件?
未分類
29 8 月 2020

chrome 浏览器能否让本地的 html 通过 ajax 加载本地文件?

chrome 浏览器能否让本地的 html 通过 ajax 加载本地文件?

資深大佬 : cat 4

比如有一个 index.html 文件,其中有一段代码是 fetch('data.json') 加载同目录的 data.json 文件;

chrome 直接打开这个 index.html (不使用 nginx 或其它 http server ),会加载失败:

Fetch API cannot load file:/// URL scheme must be "http" or "https" for CORS 

改成 XMLHttpRequest 方式加载也是类似的错误;

还有什么办法可以加载本地文件吗,客户不想部署 http server,希望在本地直接打开页面展示数据结果

大佬有話說 (13)

  • 資深大佬 : johnnyNg

    把 data.json 改成 data.js 吧,引入 js 文件

  • 主 資深大佬 : cat

    @johnnyNg 谢谢,但页面上有其它类型的文件需要动态加载,并且是由第三方插件加载的,无法这样搞,还有其它方法吗

  • 資深大佬 : pinews

    html 可以默认加载图片和视频,可以运行 js 文件

    其他文件都必须用户亲自操作(即用户许可)才能运行。

  • 資深大佬 : johnnyNg

    @cat Electron 走起

  • 主 資深大佬 : cat

    @johnnyNg

  • 主 資深大佬 : cat

    @pinews 需要加载的其它类型文件 本质上也是一串文本,我看看能不能一起搞到 js 里…

  • 資深大佬 : Sapp

    chrome 要是给你这个权限怎么保证安全? 这明显是不可能给你的权限啊,不然你瞎读客户文件上传。
    要么你让用户自己选择文件加载,然后你读取他选择的文件,要么 electron,什么权限都能自己搞。

  • 主 資深大佬 : cat

    @Sapp 以 file:// 协议打开的本地文件,和互联网上的网页不能相提并论。

  • 資深大佬 : pinews

    @cat 别想了,道理是一样的,都需要许可,本地 js 文件之所以能运行,是这个行为得到了用户逻辑上的许可。

  • 資深大佬 : phy25

    https://bugs.chromium.org/p/chromium/issues/detail?id=47416

  • 資深大佬 : isDebug

    你这是 mock 吗 直接用 js import 吧

  • 資深大佬 : imn1

    本地的话也没必要 ajax,写入 html 文件里面就行了
    或者自己写个程序,内置 webkit,如 pyqt 做这个就几行代码而已

  • 資深大佬 : miaowm5

    如果客户不想部署 http server 只是因为嫌麻烦,那直接写一个单文件无配置的静态文件服务器呢?

    比如我自己是偷偷往目录里扔了个 node.exe ,然后说不需要部署只需要运行一个 bat 就行,那个 bat 里实际上是调用 node.exe 在当前目录起了个静态服务器然后打开了 chrome……

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具