/** * 將對象轉成 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