最近工作中的项目需要通过浏览器ajax请求访问本地的一个http服务,不可避免遇到了跨域的问题,还要兼容IE,踩了不少坑,在这里作一个总结吧

1.浏览器同源策略

  跨域问题是由于浏览器的同源策略所引起的,浏览器同源策略在web应用中非常重要,没有它web的世界会一团糟

  URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。

  比较容易忽略的一点就是协议不同也会引发同源策略,httphttps是不同源的

  浏览器的同源策略就是,从一个源上加载的脚本不允许访问不同源的文档,这个有点抽象,具体体现在下面两个方面

  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

浏览器同源与跨域问题总结相关推荐

  1. jQuery高级用法、axios、同源与跨域、JSONP以及防抖与节流

    重点: 一.jQuery高级用法 1. jQuery实现文件上传 (1)定义UI结构 (2)验证是否选择了文件 ①将 jQuery 对象转化为 DOM 对象,并获取选中的文件列表 ②判断是否选择了文件 ...

  2. 【JavaScript】同源、跨域

    文章目录 同源策略 跨域 CORS JSONP JSONP概述 JSONP的简单实现 同源策略 同源政策是由Netscape提出的一个著名的安全策略. 所有支持JavaScript的浏览器都会使用这个 ...

  3. 爬取斗图网图片,使用xpath格式来匹配内容,对请求伪装成浏览器, Referer 防跨域请求...

    6.21自我总结 一.爬取斗图网 1.摘要 使用xpath匹配规则查找对应信息文件将请求伪装成浏览器Referer 防跨域请求 2.爬取代码 #导入模块 import requests#爬取网址 ur ...

  4. 什么是跨域,为什么浏览器会禁止跨域,以及实现跨域的几种方式

    首先我们来想一想 为什么会有跨域这个名词的出现呢? 跨域又是什么呢?为何要跨域? 浏览器的同源策略又是什么?怎么解决? jsonp又是什么? 跨域的原理又是什么呢? 名词解释: 1.什么是跨域 跨域的 ...

  5. 关于同源与跨域问题,以及解决方法(八种)

    一,什么是跨域 就是跨域名,跨端口,跨协议 例如:如果有两个服务器,服务器A和服务器B,服务器A上存储了php数据,script,甚至是css这些文件,而你在服务器B上只写了html,然后你所在的服务 ...

  6. JavaScript 同源策略 跨域 JSONP CORS 防抖和节流

    同源策略与跨域 同源策略 定义 比较 通俗理解 跨域 定义 浏览器对跨域请求的拦截 实现跨域的两种方法 自定义JSONP jQuery的JSONP 防抖与节流 防抖 节流 总结 同源策略 定义 同源策 ...

  7. AJAX——同源与跨域2

    参考链接:https://www.cnblogs.com/sdcs/p/8484905.html 1. 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的 ...

  8. chrome浏览器解决ajax跨域问题

    方法一 1.右键谷歌快捷方式,选择"属性". 2.打开属性窗口,切换到"快捷方式"选项卡. 3.在目标路径的后面添加[ --disable-web-securi ...

  9. ie浏览器设置允许跨域_ieTester允许跨域浏览窗口和框架

    在用 ieTester 测试网页时,每次打开 ie6 总是不断的弹出 Allow sub-frames to navigate across different domains?,意思是是否允许跨域浏 ...

最新文章

  1. opencv-python图像处理之磨皮相机
  2. 零基础Java学习之构造器
  3. c++ cuda拷贝内存
  4. 单体预聚合的目的是什么_聚合物在加工过程中降解可能性分析与预防
  5. find linux 指定后缀_linux下find(文件查找)命令的用法总结
  6. 李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结
  7. 从此明白了卷积神经网络(CNN)
  8. statsmodels常用函数(更新中)
  9. 21天Jmeter打卡Day21生成HTML测试报告
  10. nohup执行的jar 怎么kill_使用Shell脚本如何启动/停止Java的jar程序
  11. table 谷歌下不出现滚动条
  12. 在css中使用hover来控制其他元素的样式,该两个元素必须是父子元素
  13. java面试erp项目经验_ERP项目经验总结
  14. 机器学习深度学习教程
  15. rpi4b引导ubuntu分析------distro_bootcmd
  16. 什么云服务器可以挂虚拟鼠标,云服务器 模拟鼠标
  17. 技术领导力 程序员如何才能带团队 文摘 (三)
  18. java8新特性stream流
  19. CPU核心数目 与 多线程
  20. TF卡/SD卡 异常问题,识别不了

热门文章

  1. Flex中List自己定义itemrenderer渲染问题的解决
  2. 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三 1-转
  3. pair的用法 make_pair
  4. 【Spring】Spring的AOP术语解释
  5. deville什么意思_欧米茄手表的deville是什么意思?
  6. 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
  7. 64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
  8. Perl的Net::SSH::Perl模块实现远程登陆ssh
  9. C++回声服务器_6-多进程pipe版本服务器
  10. spring cloud微服务分布式云架构-整合企业架构的技术点