最近思考如何直接将本地h5网页封装成APP,而数据是直接通过jquery的ajax方法读取在线的网页。然而js因为安全性问题是无法跨域请求的,网上给出了一些解决方案,但是都复杂得不行,想要研究透彻得花很长时间,不过还好终于找到了一个简单粗暴的方法。首先说明一下,cors-anywhere是个很有意思的东西,网上最多的教程是通过它解决微信公众号图片防盗链的问题,但实际上它完美的解决了跨域的网页代码读取问题,那么我最开始所做的思路也有了实现的可能。
参考csdn博客,用户Mr_Sparta的文章。
主要实现功能的js代码如下,需要引入jquery
<script>
$.ajaxPrefilter(function (options) { //对于cors-anywhere接口所定义的方法
if (options.crossDomain && jQuery.support.cors) {
var http = (window.location.protocol === 'http:' ? 'http:' : 'https:'); //访问的模式
options.url = http + '//cors-anywhere.herokuapp.com/' + options.url; //对于接口设置请求的带参数url
}
});
$.get( //定义ajax中的get()方法
'https://www.ruletree.club', //这里为请求的地址,我设置为我的博客
function (response) {
$("#html").html(content); //将获取到的内容写入id为content的html元素内
});
</script>
html代码如下,我设置得很简单
<div id="content">这里放置读取完成之前显示的内容,比如一个进度条或者转动的加载球</div>
最后,至于比如超时的方法我就没写了,不是很难,就是让js在页面加载完成后的几秒,开始识别id为content的div中内容,如果没有变化就显示超时的信息,不够ajax原生的超时判断我倒是没试过。
可以自己尝试一下:
下载地址:dq.zip
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/803/