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

建湖做网站的价格管理

建湖做网站的价格,管理,网站建设的物流,天蓝色美容网站跨域基础知识点#xff1a;跨域知识点 iframe实现跨域的四种方式#xff1a;iframe实现跨域的四种方式 注#xff1a;本篇中使用到的虚拟主机也是上面iframe中配置的 目录 JSONP跨域 JSONP介绍 跨域实验#xff1a; WebSocket跨域 websocket介绍 跨域实验 JSONP跨域 … 跨域基础知识点跨域知识点 iframe实现跨域的四种方式iframe实现跨域的四种方式 注本篇中使用到的虚拟主机也是上面iframe中配置的 目录 JSONP跨域 JSONP介绍 跨域实验 WebSocket跨域 websocket介绍 跨域实验 JSONP跨域 JSONP介绍 如果不涉及跨域在前端通常以JSON格式从服务端获取数据但是跨域时这何总方案不可行不过对JSON书进行简单处理后就可以跨域共享这就是JSONPJSON with Padding方案 在JSON字符串前后可以做一些填充这也正是JSONP这个名字的由来就可以将其变为一段javascript代码 JSONP 是服务器与客户端跨源通信的常用方法。 最大特点就是简单易用没有兼容性问题老式浏览器全部支持服务端改造非常小。 它的做法如下 方法1通过函数传递参数JSON数据时需要提前定义好回调函数Callback再通过script src JSONP地址/script载入JSON代码。张回调函数就的得到了JSON数据 方法2另外一种方式就是通过赋值语句把数据赋值给一个变量这样也可以把JSON数据引入到当前的Javascript执行环境 缺点 传输数据很少 只支持get传输 类似于RIP协议的地位 第一步网页添加一个script元素向服务器请求一个脚本这不受同源政策限制可以跨域请求。 script srchttp://api.foo.com?callbackbar/script 注意请求的脚本网址有一个callback参数?callbackbar用来告诉服务器客户端的回调函数名称bar。 第二步服务器收到请求后拼接一个字符串将 JSON 数据放在函数名里面作为字符串返回bar({...})。 第三步客户端会将服务器返回的字符串作为代码解析因为浏览器认为这是script标签请求的脚本内容。 这时客户端只要定义了bar()函数就能在该函数体内拿到服务器返回的 JSON 数据。 下面看一个实例首先网页动态插入script元素由它向跨域网址发出请求。 function addScriptTag(src) {var script document.createElement(script);script.setAttribute(type, text/javascript);script.src src;document.body.appendChild(script); } ​ window.onload function () {addScriptTag(http://example.com/ip?callbackfoo); } ​ function foo(data) {console.log(Your public IP address is: data.ip); }; 上面代码通过动态添加script元素向服务器example.com发出请求。 注意该请求的查询字符串有一个callback参数用来指定回调函数的名字这对于 JSONP 是必需的。 服务器收到这个请求以后会将数据放在回调函数的参数位置返回。 foo({ip: 8.8.8.8 }); 由于script元素请求的脚本直接作为代码运行这时只要浏览器定义了foo函数该函数就会立即调用。 作为参数的 JSON 数据被视为 JavaScript 对象而不是字符串因此避免了使用JSON.parse的步骤。 跨域实验 1编写cross_origin/index.html function foo(data) {console.info(data);}var obj { ip: 8.8.8.8 }foo(obj) 这里的index.html充当的是服务端这类提供一个foo函数将obj对象中的值传入到foo函数中打打一出来 2编写CSSinject/index.html文件 function addScriptTag(src) {var script document.createElement(script);script.setAttribute(type, text/javascript);script.src src;document.body.appendChild(script);} ​window.onload function () {addScriptTag(http://www.aaa.com/index.html?callbackfoo);} ​function foo(data) {console.log(Your public IP address is: data.ip);}; 这里首先定义了一个函数用来常见script标签然后着呢个开了一个加载时间将www.aaa.com/index.html?callbackfoo传入到上面的函数中然后参数中的callbackfoo指定了回调函数为foo访问到www.aaa.com以后执行了回调函数。 3测试 在浏览器中输入www.security.com访问CSSinject/index.html页面 可以看到成功的打印出了www.aaa.com里面定义的ip地址了 总JSONP方案其实不算是跨域数据传输的标准做法只算是一个技巧而且它只能实现单向的读操作只支持GET请求写操作则需要借助其他方案才能实现实现跨域传输的标准方案是后面要讲到的CORS跨域资源共享方案JSONP实现跨域的这种方法早已经被淘汰 WebSocket跨域 websocket介绍 WebSocket 是一种通信协议使用ws://非加密和wss://加密作为协议前缀。 该协议不实行同源政策只要服务器支持就可以通过它进行跨源通信。 下面是一个例子浏览器发出的 WebSocket 请求的头信息 GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13 Origin: http://example.com 上面代码中有一个字段是Origin表示该请求的请求源origin即发自哪个域名。 正是因为有了Origin这个字段所以 WebSocket 才没有实行同源政策。 因为服务器可以根据这个字段判断是否许可本次通信如果该域名在白名单内服务器就会做出如下回应 HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk Sec-WebSocket-Protocol: chat 跨域实验 1创建文件socket.htmlCSSinject目录下 let socket new WebSocket(ws://127.0.0.1:3000);socket.onopen function () {socket.send(i love you );//向服务器发送数据}socket.onmessage function (e) {console.log(e.data);//接收服务器返回的数据} 这里是常见了一个Webscket构造函数的实例对象socket并且ws是127.0.0.1:3000然后新建了一个打开事件发送了一句i love you 给服务端后面又新建了一个消息事件打印服务端返回的消息  2创建文件socket.jsCSSinject目录下 let express require(express); let app express(); let WebSocket require(ws)//记着安装ws let wss new WebSocket.Server({ port: 3000 }); wss.on(connection, function (ws) {ws.on(message, function (data) {console.log(data);ws.send(i hate you)}); }) 首先导入了express模块然后引入了Websocket的ws模块新建一个websocket实例监听3000端口然后当客户端连接成功后执行ws回调函数这里就接收到了客户端发送来的消息然后回复了一句i hate you  注如果没有ws模块可以使用npm install ws命令来进行安装 如果没有npm命令可以去浏览搜索node.js安装到本地 3测试 首先使用cmd命令行进入对应目录中模拟在服务端运行js文件 node socket.js 然后在浏览器访问www.security.com/socket.html 可以看到客户端成功的接收到了服务端发送的信息 再看服务端 这是一串16进制数字我们可以尝试把这串数字转换为ASCII码看看 首先转换10进制的结果为105 32 108 111 118 101 32 121 111 117 32 然后对应ASCII码表可以解出这一串字符串为i love you 那就说明我们成功的实现了客户端与服务端跨域资源互访 还有一篇关于跨域的方式是CORS跨域也是最推荐使用的一种方式在一篇进行讲解
http://www.w-s-a.com/news/534864/

相关文章:

  • 360免费建站视频wordpress标签显示图片
  • 创建简易个人网站国外做网站被动收入
  • 轻定制网站建设网页培训哪个机构好
  • 青岛海诚互联做网站好吗计算机软件开发培训机构
  • 德钦网站建设如何在网站上做用工登记
  • 创意品牌网站云服务
  • 个人备案网站可以做商城展示如何制作网页二维码
  • 网站建设php教程视频百度seo 站长工具
  • 外包小程序两个相同的网站对做优化有帮助
  • 网站备案主体修改wordpress 导航图片
  • 怎么建设网站数据库用vs代码做网站
  • 运营企业网站怎么赚钱动漫制作专业概念
  • 宜春网站建设推广网络推广工作好干吗
  • 网站程序0day平顶山市做网站
  • 企业网站名称怎么写哔哩哔哩网页版官网在线观看
  • 直播网站建设书籍阿里巴巴网站建设销售
  • 肇庆企业自助建站系统郴州网站建设解决方案
  • 长沙专业做网站排名游戏开发大亨内购破解版
  • 网站推广适合女生做吗网站如何开启gzip压缩
  • 做外单阿里的网站建站平台那个好
  • 全国性质的网站开发公司关于网站开发的请示
  • 齐齐哈尔住房和城乡建设局网站生物科技公司网站模板
  • 中国建设协会官方网站前端培训的机构
  • 网站建设套餐是什么北京孤儿院做义工网站
  • 网站如何做微信支付链接做暧小视频xo免费网站
  • SEO案例网站建设重庆建站模板平台
  • 上海seo网站推广公司wordpress 小米商城主题
  • 搭建服务器做网站什么网站可以请人做软件
  • 上海建筑建材业网站迁移公家网站模板
  • 仿制别人的网站违法吗网站防火墙怎么做