怎么解决服务器间的跨域问题

怎么解决服务器间的跨域问题,第1张

  空间在展现每个UWA开放模块之前都必须请求该模块的xml源代码以进行解析,鉴于安全性等问题的考虑。但这些方法都有一定的局限性,再由本域服务器的代理来请求数据并将响应返回给客户端。

  下面我们将以空间的开放平台为例。要解决该问题,只能让js向hi域的web服务器请求xml文件;uwa目录下,并简单介绍下spproxy的一些特性服务端的解决方案的基本原理就是;ow/、transmit的分流以及space的spproxy模块来解

  决该跨域问题,如apache和lighttpd的mod_proxy模块,每个模块的源代码文件都是存放在act域下的/。在百度内

  部、缺点及下一步的改进计划,简单介绍下如何通过apache的mod_proxy,由客户端将请求发给本域服务器,space这边最后开发了一个专门用于处

  理跨域请求代理服务的spproxy模块、transmit分流,而hi域web服务

  器则通过一定的代理机制(如mod_proxy,那么在

  用户空间首页(hi域)中请求该xml文件时就会存在js跨域问题,用于彻底解决js跨域问题,transmit的分流功能也可以解决部分跨域问题。

  最常用的服务器解决方案就是利用web服务器本身提供的proxy功能

原文连接: 原文地址

跨域的详细介绍可以参考: 浏览器和服务器实现跨域(CORS)判定的原理 ,这里不多赘述。

1、主要就是客户端向发送了服务端请求,服务器已经能返回数据,但是浏览器不接收

2、在接口里面加上:( 因为request是处理请求,response是返回结果 )

responsesetHeader("Access-Control-Allow-Origin", "");

responsesetHeader("Cache-Control","no-cache"); 

3、如果是使用Spring Boot创建的项目,直接添加 一句注解 到controller和方法就可以了:

@CrossOrigin

其中@CrossOrigin中的2个参数:

origins  : 允许可访问的域列表

maxAge :准备响应前的缓存持续的最大时间(以秒为单位)。

在这个例子中,对于retrieve()和remove()处理方法都启用了跨域支持,还可以看到如何使用@CrossOrigin属性定制CORS配置。如果同时使用controller和方法级别的CORS配置,Spring将合并两个注释属性以创建合并的CORS配置。

4、如果您正在使用Spring Security,请确保在Spring安全级别启用CORS,并允许它利用Spring MVC级别定义的配置。

二、全局CORS配置

 除了细粒度、基于注释的配置之外,您还可能需要定义一些全局CORS配置。这类似于使用筛选器,但可以声明为Spring MVC并结合细粒度@CrossOrigin配置。默认情况下,所有origins and GET, HEAD and POST methods是允许的。

JavaConfig

使整个应用程序的CORS简化为:

更多使用请看原文连接和官方文档

一、在前端开发过程中,如果准备开发富应用,跨域的问题将会随之而来。

        我们先看看什么是跨域呢:

         所谓跨域,或者异源,是指主机名(域名)、协议、端口号只要有其一不同,就为不同的域(或源) 。出于保护用户数据的目的,浏览器有一个最基本的策略就是同源策略,只允许页面内的脚本访问当前域的资源(加载脚本、资源等不受此限制)。

二、如果浏览器厂商不对跨域请求进行处理,会给我们带来什么危害呢?

        有心人士(病毒制造者)会利用这个漏洞进行如下攻击:

        1 CSRF/XSRF 攻击 ,简单的来讲就是在 bcom 页面中请求 acom 的接口(浏览器会自动带上 用户在 acom 的 cookie),从而获取用户的在 acom 的相关信息。

        2 XSS 注入攻击 ,类似于 SQL 攻击,提交含有恶意脚本的数据到服务器,从而达到破坏页面或者获取用户的 cookie。

三、我们了解到了什么是跨域,那我们又应该如何解决呢,现在找到了这些比较权威的文章,大家先品读一下:

        1 mozilla 官方网站关于跨域的文章(Cross Origin), HTTP访问控制(CORS)

        2 mozilla 官方网站关于浏览器同源策略的简要介绍(Same Origin),  浏览器的同源策略

四、读完这些文章,你打算怎么处理跨域问题呢,我先谈谈自己关于跨域的解决方案:

        1 采用 CORS 协议,直接在 Nginx 中设置允许跨域的 header(也可以在后端的应用程序内设置,不过在 Nginx 入口配置的话更加统一),在 location 配置中直接使用指令 add_header( 官方文档链接 ),示例配置如下:

        2 使用 JSONP,也是需要后端配合,利用“浏览器加载脚本、资源时不受同源策略的约束”这个特性,但是这种方式非常受限制,例如只能使用 GET 请求,不能携带自定义 header 等。

        3 其他的一些方法,例如 windowname, documentdomain 以及 HTML5 中的特性 windowpostMessage 等

五、其他参考链接

        1  浅谈JS跨域问题

        2 跨域资源共享 CORS 详解----阮一峰

六、声明

        现在网络上的知识非常复杂,有些是摘自权威书籍的,有些是作者自己理解然后记录下来的,有些是瞎掰的,所以一定要结合情况多多甄别,对于有权威文档的知识点,建议先参考文档。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么解决服务器间的跨域问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情