美文网首页
跨域问题原因与解决方案 - 跨域系列

跨域问题原因与解决方案 - 跨域系列

作者: 团子家族_方糖咖啡 | 来源:发表于2018-06-22 15:56 被阅读0次

什么是跨域?
跨域是指一个域下的文档或脚本试图去请求另一个域下的资源
广义的跨域:
1.) 资源跳转: A链接、重定向、表单提交
2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链
3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等

其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。

造成跨域的原因
造成跨域的原因就是同源策略
什么是同源策略?
同源策略/SOP(Same origin policy)是一种约定,请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.

同源策略限制以下几种行为:
1.) Cookie、LocalStorage 和 IndexDB 无法读取
2.) DOM 和 Js对象无法获得
3.) AJAX 请求不能发送

跨域的种类

请求地址 形式 结果 浏览器提示
http://study.cn/test/a.html 同一域名,不同文件夹 成功 --
http://study.cn/json/jsonp/jsonp.html 同一域名,统一文件夹 成功 --
http://a.study.cn/json/jsonp/jsonp.html 不同域名,文件路径相同 失败 提示跨域
http://study.cn:8080/json/jsonp/jsonp.html 同一域名,不同端口 失败 提示跨域
https://study.cn/json/jsonp/jsonp.html 同一域名,不同协议 失败 提示存在混合内容

跨域的解决方案
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域
具体实例见参考文章

参考文章

前端常见跨域解决方案
浏览器的跨域问题以及解决方案

相关文章

  • Web前后端跨域问题处理

    跨域问题有前台跨域(iframe间)和后台跨域。 前台跨域的解决方案可以采用跨域文档通讯(Cross domain...

  • 跨域问题,解决方案

    跨域问题,解决方案 - Nginx反向代理跨域问题,解决方案 - CORS方案此为原作者的链接:跨域问题,解决之道

  • Js请求跨域问题

    一、请求跨域问题概述 跨域:指的是协议名、端口或者域名不一致的情况都是跨域。 二、跨域问题的解决方案 1、同域代理...

  • Spring Boot使用CORS解决跨域问题

    一、跨域问题描述 Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等。CORS 与 ...

  • 跨域问题原因与解决方案 - 跨域系列

    什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源广义的跨域:1.) 资源跳转: A链接、重定向、...

  • 开发环境跨域和生产环境跨域

    开发环境跨域 前后端分离,IP地址不同,请求数据必然导致跨域问题;解决方案:proxy设置 生产环境跨域 解决方案...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • SpringBoot2.x整合CORS解决跨域问题

    跨域问题系列文章 1. 同源策略与CORS(跨域请求的起源)2. SpringBoot2.x整合CORS解决跨域问...

  • 关于跨域以及解决思路

    本章内容目录:一、跨域相关概念的理解二、跨域产生的原因三、跨域的几种解决方案 一、跨域相关概念的理解 首先先了解以...

  • 跨域解决方案

    在讲解决跨域解决方案之前,我们需要了解什么是跨域,在什么情况下会跨域,跨域解决的是什么问题? 一、跨域,是指浏览器...

网友评论

      本文标题:跨域问题原因与解决方案 - 跨域系列

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