美文网首页Web挨踢(IT)
web中的网络请求的同源访问策略和jsonP

web中的网络请求的同源访问策略和jsonP

作者: 追逐_chase | 来源:发表于2019-09-24 13:48 被阅读0次
web.jpeg

同源访问策略

  • 同源策略是浏览器的一种安全策略,是指请求的URL的地址中的协议,域名和端口都相同,只要其中之一不相同就是跨域
  • 同源策略主要是为了保护浏览器的安全
  • 同源策略下,浏览器不允许Ajax跨域获取服务器的数据
image.png
有时我们在请求使用数据的时候,需要跨域请求数据,那怎么实现呢?
  • jsonP,所谓的jsonp其实就是JS中的一些特殊的标签属性,比如img中的src属性就可以跨域请求图片数据
  • 在服务器端设置header("Access-Control-Allow-Origin:*");实现跨域请求
  • iFrame的方式

我们经常使用的就是jsonP

  • 就是利用script标签的src属性实现


<script>


    function callBack(obj) {
        var data = obj["s"];
        // console.log(typeof data);

        var result = document.getElementsByClassName("result")[0];
        // result.removeChild();
        var ulobj = document.createElement("ul");
        ulobj.setAttribute("id","ulId");
        for (var i = 0; i < data.length; i ++){
            var liobj = document.createElement("li");
            liobj.innerText = data[I];
            ulobj.appendChild(liobj);
            // console.log(1111111)
        }
        result.appendChild(ulobj);

        var  script = document.getElementById("demoId");
        document.body.removeChild(script);

    }

</script>

<script>


      //输入框内容发生了变化
      function aa(eve) {
          var result = document.getElementsByClassName("result")[0];
          var text = document.getElementById("textId");
          if (text.value == ""){
              result.style.display = "none";
             return;
          }

        var ulObj = document.getElementById("ulId");
        if (ulObj){
            result.removeChild(ulObj);
            result.style.display = "block";
        }
            //创建script

                var sc = document.createElement("script");

                sc.src = "https://www.baidu.com/su?wd="+text.value+"&cb=callBack";

                sc.setAttribute("id","demoId");
                document.body.appendChild(sc);




    }

</script>


image.png

主要是通过script的属性src来请求数据,其实就是引入一个文件,回调一个callBack函数

image.png

相关文章

  • web中的网络请求的同源访问策略和jsonP

    同源访问策略 同源策略是浏览器的一种安全策略,是指请求的URL的地址中的协议,域名和端口都相同,只要其中之一不相同...

  • javascript:面试总结

    1.JSONP原理 ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问...

  • Jsonp 跨域原理

    Jsonp 跨域原理。(摘选) 浏览器的同源策略把跨域请求都禁止了,但是页面中的 标签是例外,不受同源策略限...

  • JSONP的技术原理是什么?

    JSONP的本质是利用了 "ajax请求会受到同源策略的限制, 而script标签请求不会" 这一点来绕过同源策略...

  • jsonp 请求

    jsonp只能是GET请求不能是POST请求(说不出的痛,我一直记错了) 优点 不受同源策略限制 兼容性好同源策略...

  • AJAX和JSONP请求

    同源策略:端口 域名 协议相同 跨域解决CORS代理请求方式jsonp JSONP流程:动态创建script标签,...

  • CSP(Content-Security-Policy)内容安全

    1.背景 1.1.同源策略 网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数...

  • 内容安全策略(CSP)详解

    1.背景 1.1.同源策略 网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数...

  • 内容安全策略(CSP)详解

    1.背景 1.1.同源策略 网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数...

  • 跨域的方式及解决

    参考:同源策略 JSONP跨域实现和解决方式 它的工作原理在于script标签不受同源策略限制,并且请求得到scr...

网友评论

    本文标题:web中的网络请求的同源访问策略和jsonP

    本文链接:https://www.haomeiwen.com/subject/nziductx.html