zoukankan      html  css  js  c++  java
  • 关于 Fetch API 的注意事项

    fetch(url, {
        // 'GET', 'POST', 'PUT', 'DELETE'等
        method: 'GET', 
    })

    关于 GET 参数

    发送GET请求时的query参数不能放到对象中(如:{a:1, b:2}) 必须在 url 字符串中:

    const url = 'http://api.example.com/search?a=1&b=2'

    可通过如下函数处理url

    function makeURL(url, params = {}) {
        let _URL = new URL(url, window.location.origin);
        Object.keys(params).forEach(key => _URL.searchParams.append(key, params[key]));
        return _URL
    }
    const url = makeURL('http://api.example.com/search',{
        a: 1,
        b: 2,
    })

    然后发起请求:

    fetch(url, {
        method: 'GET'
    })

    关于 POST 请求体 body

    如需通过POST请求的发送json,需要做字符串化处理:

    fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        }
        body: JSON.stringify({a: 1, b: 2})
    })

    关于 cookies

    Fetch 发送请求默认不携带 cookies,如需携带,需要添加credentials: 'include' 参数:

    fetch(url,{
        method: 'GET', // 'POST'等
        credentials: 'include',
    })

    关于 Headers

    定义headers

    const headers = {
        "Content-Type": "application/x-www-form-urlencoded"
        "Authorization": "Token uynn887989afs989s8df9afa08&^&huh"
    }

    const headers = new Headers({
        "Content-Type": "application/x-www-form-urlencoded"
        "Authorization": "Token uynn887989afs989s8df9afa08&^&huh"
    })

    发送请求:

    fetch(url, {
      method: "POST",
      headers: headers,
    }

    自定义的 headers中的键会经过 Headers 对象包装,会自动转换为小写。

    // Create a test Headers object
    var myHeaders = new Headers();
    myHeaders.append('Content-Type', 'text/xml');
    myHeaders.append('Vary', 'Accept-Language');
     
    // Display the key/value pairs
    for (var [key,value] of myHeaders.entries()) {
        console.log(`${key}: ${value}`);
    }

    输出为:

    content-type: text/xml
    VM141:8 vary: Accept-Language

    因此当我们发送 Authorization 令牌时,在服务端接收到的是 authorization,如果仍用 Authorization 处理,将发生错误。

    文件上传失败解决

    删除你的自定义Content-Type请求头设置

  • 相关阅读:
    Entity SQL 初入
    ObjectQuery查询及方法
    Entity Framework 的事务 DbTransaction
    Construct Binary Tree from Preorder and Inorder Traversal
    Reverse Linked List
    Best Time to Buy and Sell Stock
    Remove Duplicates from Sorted Array II
    Reverse Integer
    Implement Stack using Queues
    C++中const限定符的应用
  • 原文地址:https://www.cnblogs.com/superfeeling/p/12596037.html
Copyright © 2011-2022 走看看