| 引入本地资源跨域问题

问题由来

学习前端上的一些新东西,常常从一个简单的 html 文件开始,然后通过 src、href 引入一些脚本或资源来查看效果。比如,在一个 html 中引入 .less 文件,使用浏览器预览,结果如下图所示:

异常.png

原因呢?

浏览器告诉我跨域了,并且称:CORS 策略只支持这些协议:http、data、 chrome、chrome-extension 以及 https。显然,如果 html 文件中引用了其他资源,直接双击 html 文件、使用 file 协议在浏览器中打开这种方式,不受浏览器 CORS 支持。

普通操作.png

解决方案

兵来将挡,既然是协议的问题,那就转协议。下方高能 >>

使用 Anywhere
anywhere 是一个随启随用的静态服务器,它可以随时随地将当前目录变成一个静态文件服务器的根目录。使用步骤如下:

  • 使用 npm 全局安装 anywhere
npm i anywhere -g
  • 打开 localhost,开始”冲浪“模式
anywhere -h

此时,便可以像资源管理器一样,可视化预览目录下的一切文件,而且不存在跨域问题,可使用的协议是:http 或 https

dos 窗口.png
沉浸式的体验.png

令人惊喜的是,当上图“新建文件夹”中是这样一堆文件的时候,浏览器自动预览了 .html 文件:

补充

关于 anywhere 的指令:

指令.png

疑问没有中止

尽管上面已经针对某些异常场景给出了完美的方案。我的疑问在于,为什么“裸奔”情况下,href 引入 .css文件 ,src 引入.js 文件,却没有跨域毛病。因缺乏理论支撑,暂时存疑。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    他在发呆阅读 4,204评论 0 0
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    他方l阅读 4,702评论 0 2
  • 转载自:https://segmentfault.com/a/1190000007326671bo 前端跨域整理 ...
    天字一等阅读 3,332评论 0 3
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 5,115评论 0 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    HeroXin阅读 4,284评论 0 4