跨域访问

本文涉及的产品
.cn 域名,1个 12个月
简介:

对于跨域访问的问题,以前一直没有深入的研究, 就记得放回一个XML来支持跨域的问题。今天,一个同事问我关于跨域请求的问题,我仔细的查阅了一下资料,对于网络上的一些知识的理解,特总结如下。

对于flash跨域,在服务器端返回如下XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.adobe.com -->
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all" />
  <allow-access-from domain="*" to-ports="*" />
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

对于javascript的跨域,也就是ajax的跨域问题,主要有以下几种方法:

1、iframe

在都是同一个顶级域名的情况下,可以使用该方法,在iframe中都加上document.domain="xxx.com",这样就统一域名了,在同一个域名下,iframe之间是可以互访问的,来解决这个问题。

2、jsonp

感觉挺高深的,其实就是在请求的时候加上callback=xxx,服务端在返回的时候,直接将返回的json变为一个javascript函数, xxx({jsondata}),这样也可以实现跨域。

3、<script>标签

script标签中的src是可以请求不同域名下的url的,可以直接在<script>的标签下的src指定到跨域的url。

4、代理方式

这个就是将原来的请求B网站的请求到A网站的服务端,然后在由服务端去在server端代理到B网站。

5、CORS(跨域资源共享, Cross-Origin Resource Sharing)

服务端对于请求做一定的限制,可以允许是否可以接受跨域的访问。该实现比较简单,在访问的返回的header中加入如下响应标头。

Access-Control-Allow-Origin:* 

*代表允许所有的域名,还可以指定固定的域名:

Access-Control-Allow-Originhttp://www.pange.xin
相关文章
|
应用服务中间件 Nacos nginx
跨域配置
跨域配置
496 0
跨域配置
|
2月前
|
安全
跨域
跨域问题在Web开发中较为常见,开发人员需要根据具体的项目需求和场景选择合适的跨域解决方案。在实际应用中,CORS和代理服务器是比较常用的方法,而JSONP和WebSockets则适用于一些特定的业务场景。
114 49
|
2月前
|
JSON 缓存 前端开发
什么是跨域
什么是跨域
48 1
|
8月前
|
Java
springbootv 2.4.0跨域
springbootv 2.4.0跨域
|
8月前
|
安全
什么是跨域?
什么是跨域?
|
8月前
|
安全
什么是跨域,为什么会跨域?
什么是跨域,为什么会跨域?
460 1
|
8月前
|
Web App开发 前端开发 JavaScript
你能讲一下跨域吗
你能讲一下跨域吗
|
8月前
|
JSON 前端开发 安全
你了解跨域吗
你了解跨域吗
66 0
|
安全 JavaScript 前端开发
配置CORS跨域
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
500 0
|
安全 应用服务中间件 nginx
跨域 #29
跨域 #29
81 0