解决html跨域问题

背景描述:
想要把两个html实现嵌套跳转,想着都是静态的网站只要电脑上能看就行了,跳转时用了绝对路径(相对路径也不行)
写代码时为了方便看,用了VScode自带的保存自动刷新插件,相当于http -serve的用处,是挂载在服务上的,此时无法正常跳转,也不会报错。
不使用插件时可以正常跳转,但是跳转的界面其中用到了echarts,直接跳转过去时echarts图无法显示,f12发现报错:

>No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.

好家伙,你一个静态html还能跨域?
我大惊失色,仔细一想可能因为另一个html套在其他文件夹里面,可能资源不允许访问?于是决定还是从开着服务运行吧,于是继续开插件Open with Live Serve 或者使用 http-server 开启服务。
不过为什么挂载着服务的时候无法跳转呢?正好看见有人说是Chrome的安全协议限制,换成火狐就可以了。
于是火速换了火狐,发现报错:

由于协议未知,无法导航至“e:\%E9%93%B6%E8%A1%8C%E6%9D%AF\%E5%89%8D%E7%AB%AF-%E6%95%B0%E6%8D%AE%E5%B1%95%E7%A4%BA\07\index2.html”。

然后发现,这是由于先开的这个服务已经挂载到服务器上了,也就是端口号为:http://192.168.182.1:8080 这种了,它相当于已经是服务器资源了,但是这时候跳转过去的网页还是静态绝对路径的,无法识别(也就是火狐说的协议未知,因为它是一个本地文件路径,而不是网页)
这么一想,Chrome会报跨域也算正常。
于是把跳转路径前面改成开启服务器的路径,也就是

<a href="http://192.168.182.1:8080\07\index2.html">

OVER,解决!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值