text: import fetch from 'dva/fetch';
  import { notification } from 'antd';
  
  function checkStatus(response) {
    if (response.status >= 200 && response.status < 300) {
      return response;
    }
    notification.error({
      message: `请求错误 ${response.status}: ${response.url}`,
      description: response.statusText,
    });
    const error = new Error(response.statusText);
    error.response = response;
    throw error;
  }
  
  /**
   * Requests a URL, returning a promise.
   *
   * @param  {string} url       The URL we want to request
   * @param  {object} [options] The options we want to pass to "fetch"
   * @return {object}           An object containing either "data" or "err"
   */
  export default function request(url, options) {
    const defaultOptions = {
      //mode: 'no-cors', 
    };
    const newOptions = { ...defaultOptions, ...options };
    if (newOptions.method === 'POST' || newOptions.method === 'PUT') {
      newOptions.headers = {
        'Accept': 'application/json', 
        'Content-Type': 'application/json',
        ...newOptions.headers,
      };
      newOptions.body = JSON.stringify(newOptions.body);
    }
    return fetch(url, newOptions)
      .then(checkStatus)
      .then(response => response.json())
      .catch((error) => {
        if (error.code) {
          notification.error({
            message: error.name,
            description: error.message,
          });
        }
        if ('stack' in error && 'message' in error) {
          notification.error({
            message: `请求错误: ${url}`,
            description: error.message,
          });
        }
        return error;
      });
  }
  