JSONP 通用函数封装
function jsonp({url, params, callback}) {
      return new Promise((resolve, reject) => {
        let script = document.createElement('script')
        // callback 让服务器端调用,并且将数据传递进来
        window[callback] = function (data) {
          resolve(data)
          document.body.removeChild(script)
        }
        params = {...params, callback}
        const arr = []
        for (let key in params) {
          arr.push(`${key}=${params[key]}`)
        }
        script.src = `${url}?${arr.join('&')}`
        document.body.appendChild(script)
      })
    }
    function synchronize(urls) {
      return urls.map((url,i) => jsonp({url, params: {}, callback: 'show' + i}))
    }
      const ajurl = [
        'http://api.douban.com/v2/movie/in_theaters',
        'http://api.douban.com/v2/movie/top250'
      ]
      Promise.all(synchronize(ajurl))
        .then(result => {
          for (let val of result) {
            console.log(val)
          }
        })												
											JSONP 通用函数封装的更多相关文章
- ajax和jsonp的封装
		
一直在用jQuery的ajax,跨域也是一直用的jQuery的jsonp,jQuery确实很方便,$.ajax({...})就可以搞定. 为了更好的理解ajax和jsonp,又重新看了下书,看了一些博 ...
 - jsonp 简单封装
		
import originJSONP from 'jsonp' // 引入 jsonp 模块 // 对外暴露方法 jsonp // 通常传给服务端的 url 地址带参数 设计目的是希望有纯净的 url ...
 - 用Vue来实现音乐播放器(六):JSONP的封装
		
在npm上下载jsonp的包 这个包的用法 传入的参数是地址加上地址参数的混合 但是想封装一个将地址和地址参数分别传入的jsonp方法 所以来封装一个 import originJSONP from ...
 - jsonp promise 封装
		
import originJsonp from 'jsonp' export default function jsonp(url, data, option) { url += (url.index ...
 - jsonp promise封装
		
npm 安装jsonp import originJSONP from 'jsonp' export default function jsonp(url, data, option){ url += ...
 - jsonp封装
		
//jsonp的封装函数 function jsonp(url,parmter,callback){ //创建script标签 var script=document.createElement('s ...
 - 网络请求之jsonp封装
		
首先介绍下jsonp原理 浏览器因为同源策略的限制,在不同源的服务器通过我们传统axios是不能直接用来请求数据的(忽略代理),而src标签则不受同源策略的影响,所以我们需要动态的创建带有src的标签 ...
 - jsonp跨域封装
		
一.什么是同源政策? 同源策略是指在Web浏览器中,允许某个网页脚本访问另一个网页的数据,但前提是这两个网页必须有相同的URI.主机名和端口号,一旦两个网站满足上述条件,这两个网站就被认定为具有相同来 ...
 - JSONP是如何工作的
		
我对这个问题的探究来源于一个需求: 当访问某个页面的时候,需要向另外一个网站报告一下这次访问的信息. 其实发一个跨域的请求就能大致实现这个需求.我们发跨域的例子其实很常见,例如请求一个第三方的图片.引 ...
 
随机推荐
- node.js获取命令参数
			
假如有个加密程序test.js,不想每次加密的时候都修改代码,直接通过控制台输入参数 var createHash = require('sha.js') var sha1 = createHash( ...
 - vscode设置语言
			
按 ctrl+shift+p 中文设置成英文输入 “配置语言” 打开locale.json 设置 "locale":"en" 英文设置成中文输入 &qu ...
 - Scala 知识点掌握2
			
Scala 基础知识点巩固2 1.集合中常用的函数 sum / max / min # 定义一个List[Int]val list1 = List(1,3,4,6,8,9)# 取集合中所有元素的和li ...
 - mysql无法连接Can't create a new thread (errno 11)
			
问题描述: 今天本地navicat连接服务器mysql出错 ,提示ERROR 1135: Can't create a new thread (errno 11); if you are not ou ...
 - JS多级树结构写法
			
效果: 一.布局: <div class="three_tree"> <div class="tree_title_cut"> < ...
 - 又到圣诞节,让你的网页下起雪(js特效)
			
又到圣诞节,让你的网页下起雪(js特效) 在4年多前,我写过一个特效,就是让你的网页下起雨,它的效果就是在你打开的网站,雨点下满你的屏幕,恩,大概效果如下图: 当然这个效果还有一些附带项,比如风速.风 ...
 - JavaScript专题
			
1. 在ajax的任何回调方法中,比如success回调,使用return,将会无效 2. //todo
 - A full JDK must be specified
			
当你开发就了,你就发现,你遇到了各种奇葩的问题,结果,自己奇葩了. 背景:由于项目需要做安全恢复测试,然后,就搭一个新的库环境去测试: 配置jboss的运行jdk时,结果,蹦出个:A full JDK ...
 - ZT在谷歌上班感受如何?
			
在谷歌上班感受如何? 2013-11-05 作者:腾讯科技 出处: 互联网 责编:zlu 在谷歌这家全球最大最有抱负的技术公司工作将是怎样的情景呢?是天堂般的享受,还是地狱般的折磨呢?下面看一 ...
 - leetcode 62、Unique Paths
			
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...