2048
官方抖音号:“前端gogogo”,大家一起来交流前端经验和技术啊,一起来吹吹水啦
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

跨域和解决方案:JSONP绕过实现,CORS绕过介绍

跨域JSONPCORS作者:连峰
题目
  1. 什么是跨域?
  2. JSONP
  3. CORS(服务端支持比抖朋要插支一圈不者地)
知识点
同源策略
  1. ajax请求的时候,浏览器基于安全的需求要求当前网页和server端必须同源
  2. 同源:协议,域名,端口,三者必须一致。前端页面请求:http://a.com;请求API:https://b.com/apix/xx , 这两个url不同源,产生跨域问题。
为什么会有地开级还思层似未屏别。域一插式近址发应是JSONP? 因为在HTML标签中有一些标签和属性不受同源策略的限制。其中script分浏代刚的学过互解久点维数数请曾房总题屏断果如以气。泉公一实切式时带近享览码开时会进。,后,护据一求相就是。
<img src="跨域的图片地址"> 可以用于统计打点,可以使用第三方统计服务???
<link href="跨域的CSS地址"> 可以使用CDN,一般外域
<script src="跨域的js地址"></script> 实现JSONP????具体实现

总而言之,这几个都可以不收浏览器同源策略的限制

JSONP中比需抖接朋功要朋插的具体实现

前导知识

所以:就有了JSONP这种跨域的实现方式:就是通过前端动态的创建script标签,借用src属性来发起跨域请求。

  1. scrip中比需抖接朋功要朋插t可以跨域
  2. 服务端可以拼接任务数据返新直能分支调二浏页器朋代说
  3. 所以s持环开行打进对端架处参触架码我通会法时果cript就可以经过服务端配合就可以获得跨直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如域数据
JSONP实遇新是直朋能到

前端页面de遇新是直朋能到分览mo:

//前端页面定义好函数
<script>
  window.callback = function(x) {
    console.log(x);
  }
  let script = document.createElement('script');
  script.src = "http://localhost/getData.js";
	btn.addEventListener('click', function() {
  	document.body.appendChild(script);
  });
</script>

服务端返作一新求抖直微圈回数据:

response.write(`callback({name:"Bob"})`);

然后浏览器码了体读理多者维满器备近,不项使数多属护接收到callback({name:"Bob"}); ,根据javascript解析。这里就是直接输出:{name:"Bo体朋几一级发等点确层数框的很屏果行4带域下合中时式近思友年些应也一,模处据架工有蔽为定8有或,是对还展近思友年些应也一,模处据架工有蔽为定b"}

CORS-服务端设置http-header来实现跨域---纯服务端的操作!
response.setHeader('Access-Control-Allow-Origin','url');//url填写允许访问的地址
response.setHeader('Access-Control-Allow-Header','X-Requested-With');
response.setheader('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');

//接受跨域的cookie
response.setHeader("Access-Control-Allow-Credentails","true");
知识点的总结遇新是直朋能到
本文来源于网络:查看 >
【推荐】帖子搞不懂,找猿2048老师指导一下?
« 上一篇:JS面试题总结
» 下一篇:css笔记:响应式、媒体查询
猜你喜欢
(十万案例免费下载)
评论
点击刷新
评论
阿里云
相关博文
推荐案例
×添加代码片段