Skip to content

jindada/isomorphic-fetch-http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

isomorphic-fetch-http

NPM version NPM downloads

Install

npm install isomorphic-fetch-http --save

Usage

import { http } from 'isomorphic-fetch-http'

http.setup({
  cookies: true,
});

return http.get('url', param, header);

Options

setup

全局配置

prefix

请求 url 前缀

headers

配置请求头

cookies

是否携带cookies

filter

过滤函数,发生在请求发出之前,可以对url, headers,fetch option进行更改,类型为 Promise function。

http.setup({
  filter: data => new Promise((resolve, reject) => {
    // 获取
    const { url, headers, option } = data;
    
    // 修改
    const newHeaders = {
      ...headers,
      token: 'zhnagsan'
    };
    
    // 返回
    resolve({ url, headers: newHeaders, option });
  })
});

callback

回调数据函数,对请求成功获取到的数据进行预处理

http.setup({
  callback: data => {
    const { status, data, messgae } = data;
    if (status) {
      return data;
    } else {
      throw new Erroe(message);
    }
  }

get

get 方法,一般用于数据查询

return http.get('/get', {currentPage: 1}, {token: 'zhangsan'}); // 此处的headers优先级最高

post

post 方法,一般用于数据提交

return http.post('/add', {username: 'zhangsan'});

put

put 方法,一般用于数据修改

return http.put('/update/1', {username: 'lisi'});

delete

delete 方法,一般用于数据删除

return http.put('/delete/1');

json

请求头 "Content-Type" 为 "application/json" 的 post 方法

return http.post('/add', {username: 'zhangsan'});

options

option 方法,一般用于请求时的预检

Defalut headers

"Content-Type": "application/x-www-form-urlencoded",

"Access-Control-Allow-Origin": "*",

"Access-Control-Max-Age": "86400",

"Access-Control-Allow-Methods": "POST, GET, OPTIONS, PUT, DELETE",

"Access-Control-Allow-Headers": "token, host, x-real-ip, x-forwarded-ip, accept, content-type",

Links

Contributing

You can submit any ideas as pull requests or as a Github issue.