• AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?


    AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?
    什么是ajax:是异步javascript和xml
    ajax是用于创建快速网页技术
    通过在后台和服务器金星号少量数据交互,通过异步更新,实现页面的局部更新
    同步:等待页面回复完再继续
    异步:页面继续与进程处理可能的回复
    交换流程
    1,创建xhr
    2,open打开异步通道,设置异步请求true为异步请求
    3,send发送数据
    4,判断readystate==4;HTTP请求在200,300之间或者304数据请求成功
    跨域技术
    什么是跨域
    可以通信:同一域名,同一域名下的不同文件
    可以不通信:1,同一域名,不同端口
    2,同一域名,不同协议。
    3,域名和域名对应的ip
    4,http://www.a.com/a.js
    http://script.a.com/b.js 主域相同,子域不同
    5,http://www.a.com/a.js
    http://a.com/b.js 同一域名,不同二级域名(同上)
    6,http://www.cnblogs.com/a.js
    http://www.a.com/b.js 不同域名
    1.document.domain+iframe的设置(主域相同,子域不相同)
    wwww.a.com上的a.html
    document.domain+ifame
    document.domian='a.com';
    var ifr=document.createElement('iframe');
    ifr.src='http://script.a.com/b.html';
    ifr.style.display='none';
    document.body.appendChild(ifr);
    ifr.onload=function(){
    var doc = ifr.contentDocument || ifr.contentWindow.document;
    // 在这里操纵b.html
    alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);
    }
    script.a.com上的b.html
    document.domain='a.com'
    2,jsonp(ison+padding)box({name:ve;}),通过回调函数在另一个文件中写函数
    function createjs(surl){
    var oScript=documnet.createElement('script');
    oScript.type='text/javascript';
    oScript.src=surl;
    document.getElementsByTagName('heade')[0].appendChild(oScript);
    }
    createjs('jsonp.js?callback=box');
    function box(json){
    alert(json.name);
    }
    1350*3=405
    3,location.hash
    parent.location.hash
    yyy.html#
    parent.location.hash=self.location.hash;
    <iframe src='xxx.php#key1=value1&key2=value2'></iframe>
    ie、chrome的安全机制无法修改parent.location.hash,要利用一个中间的cnblogs域下的代理iframe

    4,window.name
    name 在浏览器环境中是一个全局/window对象的属性,且当在 frame 中加载新页面时,name 的属性值依旧保持不变。
    通过在 iframe 中加载一个资源,该目标页面将设置 frame 的 name 属性。此 name 属性值可被获取到,以访问 Web 服务发送的信息。
    但 name 属性仅对相同域名的 frame 可访问。这意味着为了访问 name 属性,当远程 Web 服务页面被加载后,必须导航 frame 回到原始域。
    同源策略依旧防止其他 frame 访问 name 属性。一旦 name 属性获得,销毁 frame
    有个代理界面
    有三个页面页面
    1,a.com/app.html;应用页面
    2,a.com/proxy.html代理文件
    3,b.com/data.html数据页面

    5,html5 postmessage
    a.com/index.html中的代码
    <iframe id='ifr' src='b.com/index.html'></iframe>
    window.onload=function(){
    var ifr=document.getElementById('ifr');
    var targetOrigin='http://b.com';
    ifr.contentWindow.postMessage('i was there',targetOrigin)
    }
    b.com/index.html中的代码
    window.addEventListener('message',function(event){
    if(event.origin=='http://a.com'){
    alert(event.data);
    }
    },false);

  • 相关阅读:
    sqlserver 服务器主体 无法在当前安全上下文下访问数据库
    【转】ASP.NET"正在中止线程"错误原因
    【转载】好的用户界面-界面设计的一些技巧
    新浪博客“网络繁忙请稍后再试”
    Mac上好用的视频播放器有哪些?
    Mac上好用的视频播放器有哪些?
    游戏平台代表--PS4【推荐】
    游戏平台代表--PS4【推荐】
    ospf剩余笔记
    ospf剩余笔记
  • 原文地址:https://www.cnblogs.com/yayaxuping/p/4433050.html
Copyright © 2020-2023  润新知