fetch-pipe

1.0.6 • Public • Published

fetch-pipe

利用promise改造的ajax请求 可以跨域请求 也可以xml请求

Installation

You can install with npm.

npm install fetch-pipe

Usage

const fetchPipe=require('fetch-pipe');
fetchPipe({
    url:'/users.jsonp', //Set type name, default is 'GET';
    data:{key:1},
    type:'post'
  })
  .then(function(response) {
    return response.json()
  }).then(function(json) {
  //接收成功数据
    console.log('parsed json', json)
  }).catch(function(ex) {
  //捕获异常
    console.log('parsing failed', ex)
  })
  

note:fetchPipe内的参数以对象的形式传进去,所传的参数规则同ajax一致

跨域请求

跨域请求一定要设定dataType:'jsonp' ;
Set JSONP callback name, default is 'callback';
Set JSONP request timeout, default is 5000ms.

fetchPipe({
    url:'/users.jsonp', 
    dataType:'jsonp',
    data:{key:1},
    timeout:3000,
    jsonpCallback: 'custom_callback',
    jsonpCallbackFunction: '<name of your callback function>'
  })
  .then(function(response) {
    return response.json()
  }).then(function(json) {
    console.log('parsed json', json)
  }).catch(function(ex) {
    console.log('parsing failed', ex)
  })

非跨域请求

非跨域请求 是按照dataType不是jsonp来判断的 则按照XMLHttpRequest进行请求

fetchPipe({
    url:'/xml.json',
    data:'key=1&value=3'
    
  })
  .then(function(response) {
    return response.json()
  }).then(function(json) {
    let result = JSON.parse(json) //非跨域请求接收到的数据 要JSON.parse转换一下
    console.log('parsed json', json)
  }).catch(function(ex) {
    console.log('parsing failed', ex)
  })

Caveats

You need to call .then(function(response) { return response.json(); }) in order to keep consistent with Fetch API.

Browser Support

Chrome Firefox IE Opera Safari
Latest ✔ Latest ✔ 8+ ✔ Latest ✔ 6.1+ ✔

最新的版本加入了Object.assign 的兼容性 目前在手机端浏览器未发现其他问题 亲证可靠

License

MIT

Acknowledgement

Thanks to eastlee

Package Sidebar

Install

npm i fetch-pipe

Weekly Downloads

3

Version

1.0.6

License

MIT

Last publish

Collaborators

  • jerry-sun