jsonpGet,跨域如此简单

我们经常在项目中遇到跨域问题,比如有时候在做个人项目的时候,我们需要请求第三方的一些数据,比如请求豆瓣公开api的数据,或则qq音乐开放api 的数据等等。但是毫无疑问,在我们的web应用中直接请求这些api将出现跨域问题。所以笔者心血来潮写了个插件—— jsonpGet。我们可以通过它来向跨域api发送get请求。下面直入主题,不多废话。

jsonpGet

简单易用的jsonp跨域请求插件,并且它返回一个promisejsonGet源码

安装

通过npm进行安装:

$ npm install jsonp-get
复制代码

用法

jsonpGet(url, params?, callback?)

  • url (string) 要请求的地址
  • params (object) 参数,组成url的参数部分如:{a: 1, b: 2} 转为 ?a=1&b=2
  • callback (string) 前后端约定的字段名,默认值为callback(通常为此值),用来携带回调。

demo

比如,向豆瓣公开api发送请求。我们可以在then方法的回调中处理我们的数据,十分方便。

import jsonpGet from 'jsonp-get'

let url = 'https://api.douban.com/v2/movie/search'
let params = { tag: '喜剧' }

jsonpGet(url, params)
  .then(res => {
    console.log(res)
  })
  .catch(err => {
    console.log(err)
  })

/* Network
*
* Request URL: https://api.douban.com/v2/movie/search?tag=%E5%96%9C%E5%89%A7&callback=myback
* Request Method: GET
* Status Code: 200 OK
*/

/* Console
*
*  {count: 20, start: 0, total: 200, subjects: Array(20), title: "带有标签 "喜剧" 的条目"}
*/
复制代码

Github: jsonGet项目 有什么问题,欢迎提 issues

猜你喜欢

转载自juejin.im/post/5b746accf265da280d57928f