原生Javascript使用fetch发起请求_模拟get|post|文件流下载等

Posted 深入学习ing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生Javascript使用fetch发起请求_模拟get|post|文件流下载等相关的知识,希望对你有一定的参考价值。

  有时候,我们无法借助熟悉的jquery发起请求,原生JS里是支持fetch函数的,这是个高度封装的方法,帮助我们做了很多底层的封装,下面列举一些发起请求的示例:

 

  1-发起Get请求:

//httpGet请求
    var httpGet = async function (getUrl) {
        var opts = {
            method: "GET",
            credentials: ‘include‘ // 强制加入凭据头
        }
        await fetch(getUrl, opts).then((response) => {
            return response.text();
        }).then((responseText) => {
            result = responseText;
        }).then((error) => {

        });
        return result;
    };

 

  2-发起Get文件流-支持设置保存文件名-下载:

    //执行httpGet下载
    var httpDownLoadFile = async function (getUrl, fileName) {
        var opts = {
            method: "GET",
            credentials: ‘include‘ // 强制加入凭据头
        }
        await fetch(getUrl, opts).then((response) => {
            return response.blob();
        }).then((blob) => {
            var url = window.URL.createObjectURL(blob);
            var a = document.createElement(‘a‘);
            a.href = url;
            a.download = fileName;
            a.click();
            window.URL.revokeObjectURL(url);
        }).then((error) => {

        });
    };

 

以上是关于原生Javascript使用fetch发起请求_模拟get|post|文件流下载等的主要内容,如果未能解决你的问题,请参考以下文章

fetch的使用(需要解决跨域问题)

Fetch请求的简易封装

Fetch请求的简易封装

Vue数据请求 axios vs fetch

分别使用 XHRjQuery 和 Fetch 实现 AJAX

ajax基础3--使用原生xhr发起get,post请求