跨域访问

简介:

对于跨域访问的问题,以前一直没有深入的研究, 就记得放回一个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
相关文章
|
Java fastjson
Java将Map转换为实体类
Java将Map转换为实体类
497 0
|
Shell Linux
重装yum |-bash: yum: command not found
重装yum |-bash: yum: command not found
1573 0
|
Java
Java中的Map如何转实体类对象【附工具类相关方法】
Java中的Map如何转实体类对象【附工具类相关方法】
1108 0
|
SQL 监控 druid
SpringBoot 如何统计、监控 SQL运行情况?
SpringBoot 如何统计、监控 SQL运行情况?
SpringBoot 如何统计、监控 SQL运行情况?
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
13天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1286 5
|
12天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1318 87