浏览器同源与跨域问题总结
最近工作中的项目需要通过浏览器ajax请求访问本地的一个http服务,不可避免遇到了跨域的问题,还要兼容IE,踩了不少坑,在这里作一个总结吧
1.浏览器同源策略
跨域问题是由于浏览器的同源策略所引起的,浏览器同源策略在web应用中非常重要,没有它web的世界会一团糟
URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。
比较容易忽略的一点就是协议不同也会引发同源策略,http和https是不同源的
浏览器的同源策略就是,从一个源上加载的脚本不允许访问不同源的文档,这个有点抽象,具体体现在下面两个方面
1.标签的同源策略
我们知道通过标签加载资源是不会受到限制的,比如<script>加载cdn加速的js资源,<img>加载不同域的图片等,<iframe>加载其他域的html。
似乎浏览器对于标签加载资源没有作同源策略。实际上标签的同源策略体现在浏览器限制了JavaScript的权限使其不能读、写加载的html文档。
注意仅仅指的是html文档,具体而言指的是iframe加载的html文档,js无法访问其document。 而js,img等仍然认为是同源,不受访问限制。
2.ajax同源策略
浏览器发出的xmlhttprequest也存在同源的问题,不同源的访问会被限制,接下来将介绍这部分内容
2.Ajax跨域
同源策略是web安全上的考虑,但是实际的工作中经常会碰到需要跨域的情况。主流的跨域方式有
1.jsonp方式
2.cros跨域同源
3.iframe跨域
1.html5 postMessage方式
2.window.name
转载于:https://www.cnblogs.com/luowenxing/p/4648996.html
浏览器同源与跨域问题总结相关推荐
- jQuery高级用法、axios、同源与跨域、JSONP以及防抖与节流
重点: 一.jQuery高级用法 1. jQuery实现文件上传 (1)定义UI结构 (2)验证是否选择了文件 ①将 jQuery 对象转化为 DOM 对象,并获取选中的文件列表 ②判断是否选择了文件 ...
- 【JavaScript】同源、跨域
文章目录 同源策略 跨域 CORS JSONP JSONP概述 JSONP的简单实现 同源策略 同源政策是由Netscape提出的一个著名的安全策略. 所有支持JavaScript的浏览器都会使用这个 ...
- 爬取斗图网图片,使用xpath格式来匹配内容,对请求伪装成浏览器, Referer 防跨域请求...
6.21自我总结 一.爬取斗图网 1.摘要 使用xpath匹配规则查找对应信息文件将请求伪装成浏览器Referer 防跨域请求 2.爬取代码 #导入模块 import requests#爬取网址 ur ...
- 什么是跨域,为什么浏览器会禁止跨域,以及实现跨域的几种方式
首先我们来想一想 为什么会有跨域这个名词的出现呢? 跨域又是什么呢?为何要跨域? 浏览器的同源策略又是什么?怎么解决? jsonp又是什么? 跨域的原理又是什么呢? 名词解释: 1.什么是跨域 跨域的 ...
- 关于同源与跨域问题,以及解决方法(八种)
一,什么是跨域 就是跨域名,跨端口,跨协议 例如:如果有两个服务器,服务器A和服务器B,服务器A上存储了php数据,script,甚至是css这些文件,而你在服务器B上只写了html,然后你所在的服务 ...
- JavaScript 同源策略 跨域 JSONP CORS 防抖和节流
同源策略与跨域 同源策略 定义 比较 通俗理解 跨域 定义 浏览器对跨域请求的拦截 实现跨域的两种方法 自定义JSONP jQuery的JSONP 防抖与节流 防抖 节流 总结 同源策略 定义 同源策 ...
- AJAX——同源与跨域2
参考链接:https://www.cnblogs.com/sdcs/p/8484905.html 1. 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的 ...
- chrome浏览器解决ajax跨域问题
方法一 1.右键谷歌快捷方式,选择"属性". 2.打开属性窗口,切换到"快捷方式"选项卡. 3.在目标路径的后面添加[ --disable-web-securi ...
- ie浏览器设置允许跨域_ieTester允许跨域浏览窗口和框架
在用 ieTester 测试网页时,每次打开 ie6 总是不断的弹出 Allow sub-frames to navigate across different domains?,意思是是否允许跨域浏 ...
最新文章
- opencv-python图像处理之磨皮相机
- 零基础Java学习之构造器
- c++ cuda拷贝内存
- 单体预聚合的目的是什么_聚合物在加工过程中降解可能性分析与预防
- find linux 指定后缀_linux下find(文件查找)命令的用法总结
- 李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结
- 从此明白了卷积神经网络(CNN)
- statsmodels常用函数(更新中)
- 21天Jmeter打卡Day21生成HTML测试报告
- nohup执行的jar 怎么kill_使用Shell脚本如何启动/停止Java的jar程序
- table 谷歌下不出现滚动条
- 在css中使用hover来控制其他元素的样式,该两个元素必须是父子元素
- java面试erp项目经验_ERP项目经验总结
- 机器学习深度学习教程
- rpi4b引导ubuntu分析------distro_bootcmd
- 什么云服务器可以挂虚拟鼠标,云服务器 模拟鼠标
- 技术领导力 程序员如何才能带团队 文摘 (三)
- java8新特性stream流
- CPU核心数目 与 多线程
- TF卡/SD卡 异常问题,识别不了
热门文章
- Flex中List自己定义itemrenderer渲染问题的解决
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三 1-转
- pair的用法 make_pair
- 【Spring】Spring的AOP术语解释
- deville什么意思_欧米茄手表的deville是什么意思?
- 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
- 64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
- Perl的Net::SSH::Perl模块实现远程登陆ssh
- C++回声服务器_6-多进程pipe版本服务器
- spring cloud微服务分布式云架构-整合企业架构的技术点