• jsonp跨域请求


    跨域是什么?为什么我们需要跨域?

    跨域是指浏览器访不能问另外一个网站的脚本,这是由于浏览器的同源策略造成的,同时也是浏览器施加给javascript的安全限制。

    但是事实上,用户浏览网站是避免不了跨域请求的,所以才需要跨域来解决这个问题。

    我最熟悉的是jsonp跨域:因此先贴上jsonp跨域的例子。

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>jsonp跨域</title>
     6 </head>
     7 <style>
     8     *{margin:0;padding: 0;list-style: none;}
     9     #wrap{
    10         width: 400px;
    11         margin:100px auto;
    12         border: 1px solid orange;
    13     }
    14     #wrap #txt{
    15         width: 398px;
    16         height: 40px;
    17         font-size: 20px;
    18         border: 1px solid orange;
    19         outline: none;
    20     }
    21     #wrap #ul1{
    22         width: 393px;
    23     }
    24     #wrap #ul1 li{
    25         width: 393px;
    26         height: 40px;
    27         line-height: 40px;
    28     }
    29     #wrap #ul1 li a{
    30         display: block;
    31         text-decoration: none;
    32         color: #000;
    33     }
    34     #wrap #ul1 li a:hover{
    35         background: cyan;
    36         color: #fff;
    37     }
    38 </style>
    39 <body>
    40     <div id="wrap">
    41         <input type="text"  id="txt">
    42         <ul id="ul1">
    43         </ul>
    44     </div>
    45 </body>
    46 <script>
    47     //data数据格式:{q: "点", p: false, s: Array(10)}
    48     function callback(data) {
    49         //console.log(data);
    50     var oUl = document.getElementById('ul1');
    51     var html = '';
    52     if (data.s.length) {
    53         oUl.style.display = 'block';
    54         for (var i=0; i<data.s.length; i++) {
    55             html += '<li><a target="_blank" href="http://www.baidu.com/s?wd='+data.s[i]+'">'+ data.s[i] +'</a></li>';
    56         }
    57         oUl.innerHTML = html;
    58     } else {
    59         oUl.style.display = 'none';
    60     }
    61     
    62 }
    63 
    64 // '&cb=callback'  里的callback是回调函数
    65 
    66     window.onload=function(){
    67         var txt=document.getElementById('txt');
    68         var oUl=document.getElementById('ul1');
    69         txt.onkeyup=function(){
    70             if(this.value!=''){
    71                 var Script=document.createElement('script');
    72                 Script.src='http://suggestion.baidu.com/su?wd='+this.value+'&cb=callback';
    73                 document.body.appendChild(Script);
    74             }else{
    75                 oUl.style.display='none';
    76             }
    77 
    78         };
    79     };
    80 </script>
    81 </html>

    jsonp跨域相对而言还是简单点,容易理解吧。后续还会更新跨域方面方法。

  • 相关阅读:
    实现input输入时智能搜索
    动态磁盘转基本磁盘(简单卷变为主分区)
    删掉一个文件夹相对于另一个文件夹多出的文件
    win10搜索不到蓝牙设备
    anaconda使用
    pycharm tab换为4个空格
    wamp端口冲突
    c++ 字符串
    pta 编程题20 旅游规划
    c++指针二维数组
  • 原文地址:https://www.cnblogs.com/studyshufei/p/7905342.html
Copyright © 2020-2023  润新知