美文网首页
跨域总结

跨域总结

作者: 赵BW | 来源:发表于2017-04-08 18:09 被阅读0次

昨天总结了一下ajax,今天顺便把跨域也说了吧。

在正常的情况下。是不允许跨域的。因为保证安全。大家要准守同源策略
同源策略
  • 浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
  • 本域:相同的协议、 相同的域名、相同的端口

例:http://zhaobw.com:8080/test.html
http就是协议、zhaobw.com就是域名、8080就是端口。


跨域:
  • 在浏览器下,向不同的协议、域名、端口,发送请求获取数据。突破同源策略。

跨域的方法:
  • jsonp
  • 降域
  • cors
  • postMassage
详细介绍跨域方法
jsonp

html中script标签可以引入其他域下的js,比如引入线上的jquery库。利用这个特性,可实现跨域访问接口。需要后端支持

  • 定义数据处理函数_fun

  • 创建script标签,src的地址执行后端接口,最后加个参数callback=_fun

  • 服务端在收到请求后,解析参数,计算返还数据,输出 fun(data) 字符串。

  • fun(data)会放到script标签做为js执行。此时会调用fun函数,将data做为参数。。

    <script type="text/javascript">
    var list = document.querySelector("#list");
    console.log(list);
    var script = document.createElement("script");
    console.log(script);
    script.src = "http://a.zhaobw.com:8080/getList?callback=add";
    document.head.appendChild(script);
    function add(data){
    list.innerHTML = data;
    }
    </script>


CORS

CORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。 实现方式很简单,当你使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。所以 CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。

   res.header("Access-Control-Allow-Origin", "http://a.jrg.com:8080"); 

降域

在主域名相同, 二级域名不同的情况下。可以通过domian来进行设定

   //qwe.a.html和asd.a.html
   document.domian = "a.html"

#######postMessage
允许跨窗口通信,不论这两个窗口是否同源。postMessage方法的第一个参数是具体的信息内容,第二个参数是接收消息的窗口的源(origin),即"协议+域名+端口"。也可以设为*,表示不限制域名,向所有窗口发送。

相关文章

  • HTML-获取iframe元素的正确方法

    跨域相关文章详解js跨域问题JavaScript跨域总结与解决办法 解释最清楚的jsonpWhat is JSON...

  • 跨域的知识总结

    跨域的知识总结 表现 XMLHttpRequest、Fetch API等限制了不同域之间的数据调用。 原因 跨域的...

  • jsonp

    参考:轻松搞定JSONP跨域请求参考:JavaScript 跨域总结与解决办法要理解跨域,先要了解一下“同源策略”...

  • 跨域与常用方案

    本文源自一次内部关于跨域的讨论分享的总结 理解跨域的重点在于:了解跨域产生的场景、原理 跨域问题只在浏览器客户端环...

  • js如何解决跨域问题

    JavaScript跨域总结与解决办法 什么是跨域 1、document.domain+iframe的设置 2、动...

  • 前端跨域整理

    前言 原文地址:前端跨域总结博主博客地址:Damonare的个人博客 正文 1. 什么是跨域? 跨域一词从字面意思...

  • 跨域解决方案(史上最易懂)

    跨域总结 1.跨域思路 跨域解决方案一般分为两种:前端解决,后端解决 1.1 前端解决方案 通过前端解决的思想就是...

  • 跨域总结

    昨天总结了一下ajax,今天顺便把跨域也说了吧。 在正常的情况下。是不允许跨域的。因为保证安全。大家要准守同源策略...

  • 跨域总结

    转载自:https://segmentfault.com/a/1190000014702852https://se...

  • 浅谈前端跨域问题

    最近由于公司的一个项目需求需要前端解决跨域问题,因此学习了下跨域的相关知识,这里做一个总结,方便后期查阅。在讲跨域...

网友评论

      本文标题:跨域总结

      本文链接:https://www.haomeiwen.com/subject/jaolattx.html