jquery跨域获取网页源码,实现过程记录

本文阅读 2 分钟
广告

最近思考如何直接将本地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/
jquery实时监控文本框输入,案例整理
« 上一篇 07-31
优雅小店正式上线通知,降价活动开始
下一篇 » 08-05
广告

发表评论

V注册会员 L评论等级
R2 条回复
  1. 营养快线Lv.1 说道:
    2020-05-04     Win 7 /    Chrome

    $("#html").html(content)这里是这样把$("#content").html(response)

    1. 不暇VLv.6 说道:
      2020-05-04     Win 10 /    Chrome

      @营养快线

      当时写的时候粗心了我去

没有更多评论了

作者信息

热门文章

标签TAG

热评文章