zoukankan      html  css  js  c++  java
  • jsonp 简单封装

    import originJSONP from 'jsonp' // 引入 jsonp 模块
    
    // 对外暴露方法 jsonp
    // 通常传给服务端的 url 地址带参数 设计目的是希望有纯净的 url 参数通过 data 拼在 url 上面
    export default function jsonp(url, data, option) {
      // url 没有 '?' 时需要加 '?'
      url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
    
      // 返回 promise
      return new Promise((resolve, reject) => {
        // 调用引入的 jsonp 模块 originJSONP
        originJSONP(url, option, (err, data) => {
          // err 如果不是 null 表示成功的
          if (!err) {
            resolve(data)
          } else {
            reject(err)
          }
        })
      })
    }
    
    // data 是一个对象 封装 data 使它遍历后放入 url 中
    function param(data) {
      let url = ''
      // 通常 data 是一级的对象
      for (var k in data) {
        // 有时候 data 的值为 undefined
        // 所以不能直接加在 url 上面 设置 data 的值为 undefined 时设置为空
        let value = data[k] !== undefined ? data[k] : ''
        // ES6 语法
        url += `&${k}=${encodeURIComponent(value)}`
      }
      // 如果 url 有 data 需要把第一个 & 删除 如果没有返回空
      return url ? url.substring(1) : ''
    }
    import originJSONP from 'jsonp' // 引入 jsonp 模块

    // 对外暴露方法 jsonp
    // 通常传给服务端的 url 地址带参数 设计目的是希望有纯净的 url 参数通过 data 拼在 url 上面
    export default function jsonp(url, data, option) {
    // url 没有 '?' 时需要加 '?'
    url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)

    // 返回 promise
    return new Promise((resolve, reject) => {
    // 调用引入的 jsonp 模块 originJSONP
    originJSONP(url, option, (err, data) => {
    // err 如果不是 null 表示成功的
    if (!err) {
    resolve(data)
    } else {
    reject(err)
    }
    })
    })
    }

    // data 是一个对象 封装 data 使它遍历后放入 url 中
    function param(data) {
    let url = ''
    // 通常 data 是一级的对象
    for (var k in data) {
    // 有时候 data 的值为 undefined
    // 所以不能直接加在 url 上面 设置 data 的值为 undefined 时设置为空
    let value = data[k] !== undefined ? data[k] : ''
    // ES6 语法
    url += `&${k}=${encodeURIComponent(value)}`
    }
    // 如果 url 有 data 需要把第一个 & 删除 如果没有返回空
    return url ? url.substring(1) : ''
    }
  • 相关阅读:
    godep使用
    golang导入包的几个说明:import
    X-Frame-Options 响应头
    HTTP Strict Transport Security
    为什么我们要使用HTTP Strict Transport Security?
    IFrame安全问题解决办法(跨框架脚本(XFS)漏洞)
    基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击
    javaWeb防止恶意登陆或防盗链的使用
    关于Cookie 的HttpOnly属性(java/web操作cookie+Tomcat操作jsessionid)
    会话cookie中缺少HttpOnly属性 解决
  • 原文地址:https://www.cnblogs.com/qq-944286441/p/10741366.html
Copyright © 2011-2022 走看看