博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域解决方案
阅读量:4967 次
发布时间:2019-06-12

本文共 852 字,大约阅读时间需要 2 分钟。

非同源资源访问,通常会遇到下列问题。

一、cookie,localstorage,indexDB无法获取
二、DOM无法获取
三、如何成功发送ajax请求

针对上述3点问题,下面提供解决方案。

一、两网页共享cookie
跨子域:
二、文档请求不同源

1、

优点:支持跨主域。
缺点:不支持POST。
2、
优点:支持双向通信。
缺点:仅限于HTML5。

3、

跨主域:iframe + location.hash
优点:

  • 可以解决域名完全不同的跨域;
  • 可以实现双向通讯。

缺点:

  • location.hash会直接暴露在URL里,并且在一些浏览器里会产生历史记录,数据安全性不高也影响用户体验;
  • 由于URL大小的限制,支持传递的数据量不大;
  • 有些浏览器不支持onhashchange事件,需要轮询来获知URL的变化。

4、(需要服务器配合)

优点:支持强大,相对简单。
缺点:依赖flash,需要在服务器根目录放置crossdomain.xml文件。
三、ajax请求不同源
1、(需要服务器配合)
优点:

  • 它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;
  • 它的兼容性更好,在古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持;
  • 在请求完毕后可以通过调用callback的方式回传结果。

缺点:

  • 它只支持GET请求而不支持POST等其它类型的HTTP请求;
  • 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

2、(需要服务器配合)

优点:CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案。
缺点:老浏览器不支持CORS。
3、(需要服务器配合)
优点:
缺点:
4、(需要服务器配合)
优点:
缺点:
5、(需要服务器配合)
优点:
缺点:

转载于:https://www.cnblogs.com/camille666/p/cross_domain_way.html

你可能感兴趣的文章
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
c#中从string数组转换到int数组
查看>>