解决浏览器报跨域访问本地json等文件报错问题

在写demo使用pycharm打开时运行正常,单独使用浏览器打开时报错,详细如下:在这里插入图片描述
网上查了这是跨域问题,
因为浏览器收到同源策略的限制,当前域名的js只能读取同域下的窗口属性。
同源策略: 不同的域名, 不同端口, 不同的协议不允许共享资源的, 保障浏览器安全。
前端最佳的解决办法就是使用jsonp
Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
应用如下:

①比如你要访问tiku.json数据;正常使用jquery获取代码如下:

     }
$(function(){
	$.getJSON('tiku.json',function(data,status){
		console.log(data);
	})
})

然而这样浏览器包跨域错误。

使用jsonp的解决办法如下

<script>
     function demo(res){
         console.log(res)
     }
</script>
<script src="tiku.json?callback=demo"></script>

除了在前端修改意外,还需要修改tiku.json内容,
修改前(举例):

{‘name’:[{"n1":1,"n2":2}],"value":[{"v1":"a","v2":"b"}]}

修改后(举例):

demo({‘name’:[{"n1":1,"n2":2}],"value":[{"v1":"a","v2":"b"}]})

总的来说就是把tiku.json所有内容content,防止在函数javascript定义的demo函数中,即demo(content)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值