window.fetch - archering/basic GitHub Wiki

window.fetch 基于 Promise 设计不能 abort

默认情况下,fetch并不会发送任何的本地的cookie到服务端,注意,如果服务端依靠Session进行用户控制的话要默认开启Cookie

var prom = window.fetch(url,{
        method:"POST",
        body: JSON.stringify(params),
        headers:{
            "Content-Type": 'application/json;charset=utf-8'//这里的header  key 要用http标准的声明 不能是contentType
        },
        //默认为omit,忽略的意思,也就是不带cookie;还有两个参数,same-origin,意思就是同源请求带cookie;
        //  include,表示无论跨域还是同源请求都会带cookie        
        mode: "cors", // no-cors, cors, *same-origin
        cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
        redirect: "follow", // manual, *follow, error
        referrer: "no-referrer", // no-referrer, *client
    });

  prom.then(function(response){
        //response.status(number): HTTP返回的状态码,范围在100-599之间
        //response.ok(Boolean): 如果状态码是以2开头的,则为true
        //response.headers: HTTP请求返回头
        /***
         * response.body: 返回体,这里有处理返回体的一些方法
            text(): 将返回体处理成字符串类型
            json(): 返回结果和 JSON.parse(responseText)一样
            blob(): 返回一个Blob,Blob对象是一个不可更改的类文件的二进制数据
            arrayBuffer()
            formData()
         * 
         * 
         */
        //fetch在服务器返回4xx、5xx时是不会抛出错误的,这里需要手动通过,通过response中的ok字段和status字段来判断
    });