简单了解跨域问题如何解决

本文介绍了跨域问题的产生原因,即浏览器的同源策略,以及如何通过Jsonp、CORS和Nginx的配置来解决前端和后端的跨域问题。
摘要由CSDN通过智能技术生成

跨域问题是怎么产生的?

跨域就是违反了浏览器规定的一个同源策略,同源策略是为了保证不同页面之间不能用到对方的一下信息(如cookie,DOM对象)保证安全,同源策略主要是三个方面相同,用一个URL来举例的话,http://www.baidu.com,就是当前页面和请求地址的协议相同、端口相同、域名相同,后面的路径无所谓。

那么浏览器如何知道这个请求跨域了,首先请求会到服务器,然后服务器会响应一个响应头Access-Control-Allow-Origin,浏览器就知道是否违反了同源策略,那么只需要浏览器收到的响应的响应头Access-Control-Allow-Origin没有跨域问题就行了。

那么只需要

  • 浏览器发送一个不受同源策略限制的请求

  • 不用浏览器发送请求,使用模拟代理服务器,每次浏览器都先请求本地的模拟代理服务器,就没有同源策略了

  • 或者服务器返回响应头Access-Control-Allow-Origin是OK的(*)

  • 使用反向代理的Nginx设置响应头

如何解决跨域问题

前端

Jsonp:可以把请求路径放在<script>标签里面,src、link这些属性是不受同源策略限制的

后端

通过CORS解决跨域:首先自己写一个过滤器CORSFilter,把响应头的Access-Control-Allow等值都设置为某些字段就可以解决跨域问题

通过Nginx反向代理 :同样的来修改添加响应头字段

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值