热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

跨域以及解决办法

同源:符合“协议域名端口”三者相同,就是同源。同源策略:同源策略,初衷是为了浏览器的安全性,保证浏览器不易受

同源:符合“协议+域名+端口”三者相同,就是同源。

同源策略:同源策略,初衷是为了浏览器的安全性,保证浏览器不易受到XSS、CSFR等攻击。

同源策略限制的内容有:


  • COOKIE、LocalStorage和IndexedDB等存储性内容
  • DOM和JS对象
  • AJAX请求发送后,被浏览器拦截

但是有三个标签是允许跨域加载资源:


  • 服务器端:

        $cb = $_GET['callback'];

        $data = array(

                    'name'=> 'zs',

                    'age'=>18,

                    'gender'=>true

                );

        echo $cb.'('.json_encode($data).')';

    ?>

     

    JSONP封装:

    function jsonp({ url, params, callback }) {

      return new Promise((resolve, reject) ={

        let script = document.createElement('script')

        window[callback] = function(data) {

          resolve(data)

          document.body.removeChild(script)

        }

        params = { ...params, callback } // wd=b&callback=show

        let arrs = []

        for (let key in params) {

          arrs.push(`${key}=${params[key]}`)

        }

        script.src = `${url}?${arrs.join('&')}`

        document.body.appendChild(script)

      })

    }

    jsonp({

      url: 'http://localhost:3000/say',

      params: { wd: 'Iloveyou' },

      callback: 'show'

    }).then(data ={

      console.log(data)

    })


推荐阅读
author-avatar
傻丫丫69_678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有