function request(url, options = {}) { const defaultOptions = { method: 'GET', headers: { 'Content-Type': 'application/json', }, body: null, }; const requestOptions = { ...defaultOptions, ...options }; return fetch(url, requestOptions) .then(response => { const contentType = response.headers.get('content-type'); if (!response.ok) { throw new Error(`请求失败: ${response.status}`); } else if (contentType && contentType.includes('application/json')) { return response.json(); } else { return response.text(); } }) .catch(error => { console.error('请求失败:', error); throw error; }); } // 使用示例 const apiUrl = 'https://jsonplaceholder.typicode.com/posts'; // 发起GET请求 request(apiUrl) .then(data => { console.log('GET请求成功:', data); }) .catch(error => { console.error('GET请求失败:', error); }); // 发起POST请求 const postData = { title: 'foo', body: 'bar', userId: 1, }; const postOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(postData), }; request(apiUrl, postOptions) .then(data => { console.log('POST请求成功:', data); }) .catch(error => { console.error('POST请求失败:', error); });
//将默认的请求选项定义为一个对象,并且在用户提供的选项和默认选项之间进行合并。
//根据响应的内容类型来决定是解析为JSON格式还是纯文本格式。
标签:const,请求,GET,console,fetch,error,封装,JS,response From: https://www.cnblogs.com/qinlinkun/p/18190544