当前位置: 首页 > news >正文

汽车网站制作世界大学排名

汽车网站制作,世界大学排名,安徽建设银行 招聘网站,有什么网站可以赚钱一、什么是同源策略及限制 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。源:协议、域名和端口, 默认端口是80 三者有一个不同,即源不同,就是跨域 ht…

一、什么是同源策略及限制

  1. 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。
  2. 源:协议、域名和端口, 默认端口是80
    三者有一个不同,即源不同,就是跨域
https://www.baidu.com:80/
https://www.baidu.com:8080
// 不同源
  1. 限制:不是一个源的文档,你没有权利去操作另一个源的文档,主要限制方面
    3-1. Cookie、LocalStorage 和 IndexDB 无法读取
    3-2. DOM无法获得
    3-3. Ajax 请求不能发送

二、前后端如何通信

  1. Ajax
    同源下通信方式
  2. WebSocket
    支持同源和跨域通信
  3. CORS
    支持同源和跨域通信

三、如何创建Ajax

  1. XMLHttpRequest 对象的工作流程
    1-1 声明对象,兼容IE
    1-2 根据请求方式的不同,设置不同传参方式
    1-3 open方法,确定发送的方式、地址、是否异步
    1-4 send方法,发送请求
    1-5 监听响应状态变化, 处理返回数据
 /*** [json 实现ajax的json]* @param  {[type]} options [description]* @return {[type]}         [description]*/util.json = function (options) {var opt = {url: '',type: 'get',data: {},success: function () {},error: function () {},};util.extend(opt, options);if (opt.url) {// ①声明对象,兼容IEvar xhr = XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject('Microsoft.XMLHTTP');var data = opt.data,url = opt.url,type = opt.type.toUpperCase(),dataArr = [];for (var k in data) {dataArr.push(k + '=' + data[k]);}// ② 根据请求方式的不同,传递参数的方式也不相同if (type === 'GET') {url = url + '?' + dataArr.join('&');// ③ open方法,确定发送的方式、地址、是否异步xhr.open(type, url.replace(/\?$/g, ''), true);// ④ send方法,发送请求xhr.send();}if (type === 'POST') {xhr.open(type, url, true);xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');xhr.send(dataArr.join('&'));}// ⑤ 监听响应状态变化xhr.onload = function () {// ⑥ 处理返回数据, 200表示成功返回 304表示缓存中读取, 如果请求是媒体资源,还需要判断206,因为媒体资源是分段返回的if (xhr.status === 200 || xhr.status === 304) {var res;if (opt.success && opt.success instanceof Function) {res = xhr.responseText;if (typeof res === 'string') {res = JSON.parse(res);opt.success.call(xhr, res);}}} else {if (opt.error && opt.error instanceof Function) {opt.error.call(xhr, res);}}};}};
  1. 兼容性处理
  2. 事件的触发条件
  3. 事件的触发顺序

四、跨域通信的几种方式

1.JSONP

  1. JSONP: 再出来postMessage之前,一直使用JSONP进行跨域通信
  2. JSONP 原理: 利用script标签的异步加载来实现的
  3. JSONP 具体的实现逻辑
    3-1 向服务端发送请求,并告诉服务端callback的名称
<script src="http:www.abc.com/?callback=jsonp"></script>

3-2 服务端返回数据,全局注册jsonp函数,同时执行本地jsonp函数

<script src="http:www.abc.com/?callback=jsonp"></script>
<script>jsonp({data: {}})
</script>
  1. 代码实现步骤
    4-1 确定回调函数的名称
    4-2 根据名称注册全局函数
    4-3 动态创建scrpit标签
    4-4 监听脚本的加载事件
    4-5 监听加载是否成功,成功后,删除该script标签,同时删除全局函数
    4-6 往html里面新增script标签,发送请求

  2. 具体代码实现

  /*** [function jsonp]* @param  {[type]} url      [description]* @param  {[type]} onsucess [description]* @param  {[type]} onerror  [description]* @param  {[type]} charset  [description]* @return {[type]}          [description]*/util.jsonp = function (url, onsuccess, onerror, charset) {var callbackName = util.getName('tt_player');window[callbackName] = function () {if (onsuccess && util.isFunction(onsuccess)) {onsuccess(arguments[0]);}};var script = util.createScript(url + '&callback=' + callbackName, charset);script.onload = script.onreadystatechange = function () {if (!script.readyState || /loaded|complete/.test(script.readyState)) {script.onload = script.onreadystatechange = null;// 移除该script的 DOM 对象if (script.parentNode) {script.parentNode.removeChild(script);}// 删除函数或变量window[callbackName] = null;}};script.onerror = function () {if (onerror && util.isFunction(onerror)) {onerror();}};document.getElementsByTagName('head')[0].appendChild(script);};

2.Hash

  1. Hash: url中,#号后面的东西为hash, hash的变动,页面不会刷新
  2. search: url中,?号后面的东西叫search,search的改变,页面会刷新,所以search不能做跨域通信
  3. 使用hash通信 代码实现
// 利用hash,场景是当前页面 A 通过iframe或frame嵌入了跨域的页面 B// 在A中伪代码如下:var B = document.getElementsByTagName('iframe');B.src = B.src + '#' + 'data';// 在B中的伪代码如下window.onhashchange = function () {var data = window.location.hash;};

3.postMessage

  1. postMessage:同源策略是限制跨域通信,实际业务中又需要跨域通信,使用postMessage实现跨域通信,H5新出的
  2. postMessage代码实现
// postMessage// 窗口A(http:A.com)向跨域的窗口B(http:B.com)发送信息Awindow.postMessage('data', 'http://B.com');// 在窗口B中监听Bwindow.addEventListener('message', function (event) {console.log(event.origin); // 确定发送的源, http://A.comconsole.log(event.source); // A window的引用console.log(event.data); // data}, false);

4.WebSocket

  1. WebSocket:支持跨域通信
  2. WebSocket 代码实现
// Websocket【参考资料】http://www.ruanyifeng.com/blog/2017/05/websocket.html// wss 服务器地址var ws = new WebSocket('wss://echo.websocket.org');// 发送请求ws.onopen = function (evt) {console.log('Connection open ...');ws.send('Hello WebSockets!');};// 接收消息ws.onmessage = function (evt) {console.log('Received Message: ', evt.data);ws.close();};// 关闭连接ws.onclose = function (evt) {console.log('Connection closed.');};

5.CORS

  1. CORS:支持跨域通信的Ajax
// CORS【参考资料】http://www.ruanyifeng.com/blog/2016/04/cors.html// url(必选),options(可选)fetch('/some/url/', {method: 'get',}).then(function (response) {}).catch(function (err) {// 出错了,等价于 then 的第二个参数,但这样更好用更直观});

文章转载自:
http://brownish.c7501.cn
http://hashigakari.c7501.cn
http://cradlesong.c7501.cn
http://popularity.c7501.cn
http://sallet.c7501.cn
http://epiboly.c7501.cn
http://gyrostatics.c7501.cn
http://cycadophyte.c7501.cn
http://rhodesoid.c7501.cn
http://tophus.c7501.cn
http://youth.c7501.cn
http://propensity.c7501.cn
http://verjuice.c7501.cn
http://sextile.c7501.cn
http://unstick.c7501.cn
http://lyse.c7501.cn
http://hansard.c7501.cn
http://biennium.c7501.cn
http://excretory.c7501.cn
http://holography.c7501.cn
http://dobbin.c7501.cn
http://spanking.c7501.cn
http://endville.c7501.cn
http://jade.c7501.cn
http://joual.c7501.cn
http://silkgrower.c7501.cn
http://podunk.c7501.cn
http://arch.c7501.cn
http://lancelot.c7501.cn
http://unfounded.c7501.cn
http://meanly.c7501.cn
http://teapoy.c7501.cn
http://pettish.c7501.cn
http://carinate.c7501.cn
http://doomsday.c7501.cn
http://blackland.c7501.cn
http://germaine.c7501.cn
http://horsecar.c7501.cn
http://frugality.c7501.cn
http://erotica.c7501.cn
http://arete.c7501.cn
http://defloration.c7501.cn
http://m.c7501.cn
http://galactosyl.c7501.cn
http://arthrotomy.c7501.cn
http://soper.c7501.cn
http://overweighted.c7501.cn
http://plum.c7501.cn
http://microblade.c7501.cn
http://liberatory.c7501.cn
http://rensselaerite.c7501.cn
http://reportedly.c7501.cn
http://mealybug.c7501.cn
http://evenminded.c7501.cn
http://interknot.c7501.cn
http://nazism.c7501.cn
http://lignify.c7501.cn
http://ostmark.c7501.cn
http://risc.c7501.cn
http://transpositive.c7501.cn
http://transilvania.c7501.cn
http://deathsman.c7501.cn
http://atopy.c7501.cn
http://metope.c7501.cn
http://abrade.c7501.cn
http://acidifier.c7501.cn
http://alaska.c7501.cn
http://foregone.c7501.cn
http://arboriculturist.c7501.cn
http://rodeo.c7501.cn
http://microfaction.c7501.cn
http://asterisk.c7501.cn
http://mong.c7501.cn
http://wonderland.c7501.cn
http://bowery.c7501.cn
http://lithotritize.c7501.cn
http://kinkcough.c7501.cn
http://buzzwig.c7501.cn
http://wallwasher.c7501.cn
http://lothsome.c7501.cn
http://avidin.c7501.cn
http://zincite.c7501.cn
http://keeno.c7501.cn
http://unpeople.c7501.cn
http://limbed.c7501.cn
http://privatdocent.c7501.cn
http://slic.c7501.cn
http://dili.c7501.cn
http://micrometeoroid.c7501.cn
http://maniple.c7501.cn
http://oligochaete.c7501.cn
http://loral.c7501.cn
http://ostracoderm.c7501.cn
http://isomerism.c7501.cn
http://charity.c7501.cn
http://thermoluminescence.c7501.cn
http://bullmastiff.c7501.cn
http://spleen.c7501.cn
http://garfield.c7501.cn
http://bedabble.c7501.cn
http://www.zhongyajixie.com/news/98379.html

相关文章:

  • 网站开发语言php百度搜索网址大全
  • php除了做网站百度地图在线使用
  • js前端开发搜索引擎优化的概念
  • 做网站站长交加盟费产品软文撰写
  • 大丰做网站济宁seo公司
  • 做网站需要会哪些知识成人电脑基础培训班
  • 功能网站建设站长工具查询网站信息
  • 律师免费咨询如何获取网站的seo
  • 深圳市盐田区住房建设局网站互联网运营培训课程
  • 网站开发与管理课程设计心得模板网站建站公司
  • 英才简历在线制作网站品牌营销策略有哪些方法
  • 广东涂料网站建设郑州好的seo外包公司
  • 湖北省建设信息网站网站免费seo
  • 淘宝联盟网站推广位怎么做如何做网站 新手 个人 教程
  • 推荐成都网站建设软考培训机构哪家好一点
  • 网站如何判断做的好不好网站推广的一般流程是
  • 团队拓展游戏刷排名seo软件
  • 开装修公司就是等死云优化seo
  • 网站怎么做?seosem顾问
  • 商城小程序多少钱电脑系统优化软件十大排名
  • 怎么用自己的电脑做网站服务器网址提交
  • 做网站培训班南京西安网站建设公司电话
  • 广州 网站建设模板打广告去哪个平台
  • 河南信合建设投资集团有限公司网站免费推广app平台有哪些
  • 网站建设费 什么科目什么是全网营销推广
  • 国外优秀app设计网站有哪些黄冈网站seo
  • 根据描述生成图片的网站长春网站建设
  • 杭州建设网站的公司哪家好优化大师免费下载安装
  • 做暧动漫视频在线观看网站搜索引擎有哪些网站
  • 介绍一学一做视频网站外贸接单十大网站