hello fetch

/**
 * 將對象轉成 a=1&b=2的形式
 * @param obj 對象
 */
function obj2String(obj, arr = [], idx = 0) {
  for (let item in obj) {
    arr[idx++] = [item, obj[item]]
  }
  return new URLSearchParams(arr).toString()
}

/**
 * 真正的請求
 * @param url 請求地址
 * @param options 請求參數
 * @param method 請求方式
 */
function commonFetcdh(url, options, method = 'GET') {
  const searchStr = obj2String(options)
  let initObj = {}
  if (method === 'GET') { // 若是是GET請求,拼接url
    url += '?' + searchStr
    initObj = {
      method: method,
      credentials: 'include'
    }
  } else {
    initObj = {
      method: method,
      credentials: 'include',
      headers: new Headers({
        'Accept': 'application/json',
        'Content-Type': 'application/x-www-form-urlencoded'
      }),
      body: searchStr
    }
  }
  fetch(url, initObj).then((res) => {
    return res.json()
  }).then((res) => {
    return res
  })
}

/**
 * GET請求
 * @param url 請求地址
 * @param options 請求參數
 */
function GET(url, options) {
  return commonFetcdh(url, options, 'GET')
}

/**
 * POST請求
 * @param url 請求地址
 * @param options 請求參數
 */
function POST(url, options) {
  return commonFetcdh(url, options, 'POST')
}

摘自https://segmentfault.com/a/1190000011433064json

相關文章
相關標籤/搜索