zoukankan      html  css  js  c++  java
  • 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跨域相对而言还是简单点,容易理解吧。后续还会更新跨域方面方法。

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/studyshufei/p/7905342.html
Copyright © 2011-2022 走看看