时间:2021-05-18
获取同一个域的数据,可以通过XMLHTTP组件或IFRAME来实现,不存在跨域访问的权限问题,因此比较简单。
但如果要访问不同域的数据时,由于浏览器的安全设置,XMLHTTP没有权限获取数据,而IFRAME没有权限将获取的数据传递给父窗口,似乎没有其它解决办法。
顿悟……
网页内引用不同域的脚本并不会提示权限不足,对了,就是它没错!
解决方法找到了,现在来简单测试一下:
首先在51js.com服务器上新建一页面(Test.html)。
Over-Domain Data Fetching Test Page Test Alert Get My Info My Name: My Blog: [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
解释两个关键点:
1.lastScript用于存放上次建立的script节点的ID,在下次要再新建script节点时,要删除上次建立的节点,以免加载的脚本越来越多,占用过多的内存。
2.url后面加了一个数值d是为了防止浏览器缓存脚本数据,在本例中可以不加,但是如果脚本是由服务器动态生成的,那最好加上。
然后再建立两个javascript脚本用于测试。
alert.js:
alert('Youcanseeme!');
info.js:
g('myname').value='谱乐视听';
g('myblog').value='服务器下,这样它们和Test.html就不在同一个域内了。
用浏览器打开Test.html文件。
点击“TestAlert”,应该会弹出对话框显示Youcanseeme!。
点击“GetMyInfo”,应该会在文本框中显示本站的信息。
进而,若把Lrc歌词数据放入Js脚本文件中(不是直接更改文件扩展名),就可实现跨域获取Lrc歌词数据了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
javascript跨域问题以及解决办法什么是跨域问题?跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议、相同域名、相
公司要做一个活动页面,在其过程中发现所有的接口,ajax请求跨域。这里对跨域做个简单介绍以及提供几种解决办法。 由于浏览器实现的同源策略的限制,XmlHttp
现在咱们一起来讨论浏览器跨域请求数据的相关问题。说这样可能不是很标准,因为拒绝跨域请求数据并不是浏览器所独有的,之所以会出现跨域请求不了数据,是因为浏览器基本都
adblock屏蔽了解决办法是把浏览器自带的广告拦截功能中的过滤页面广告这个选项的勾取消掉。路径:设置中找到广告拦截选择拦截模式,UC浏览器的解决办法其他浏览器
产生跨域问题的原因跨域问题是浏览器同源策略限制,当前域名的js只能读取同域下的窗口属性。跨域问题产生的场景当要在在页面中使用js获取其他网站的数据时,就会产生跨