同源策略+跨域问题

同源策略是浏览器安全功能,限制了不同源的网页脚本无法直接读写对方资源。当使用AJAX进行跨域请求时,会遇到安全问题。解决跨域的常见方法包括CORS(跨域资源共享)和JSONP技术。CORS通过服务端设置允许跨域,而JSONP利用script标签的跨域特性,通过回调函数来获取数据,但仅支持GET请求。另外,使用代理服务器也可以规避跨域限制。
摘要由CSDN通过智能技术生成

一、同源策略

同源策略是浏览器的一个安全功能,不同源的网页脚本在没有明确授权的情况下,不能读写对方资源,所谓同源是指‘协议+域名+端口’三者相同。

1,浏览器的一个安全功能

如果不使用浏览器此安全策略对你没影响

2,同源'协议+域名+端口'

3,不同源的网页脚本在没有明确授权的情况下,不能读写对方资源

二、跨域问题

使用ajax技术(XMLHttpRequest对象),从一个网页去请求另一个网页资源时,违反浏览器同源策略限制,引起的安全问题,称为跨域。

解决跨域方案

方法一:

跨域资源共享cors

+服务端设置,允许其他源访问服务端资源

+nodejs实现:cors跨域资源共享

response.setHeader('Access-Control-Allow-Origin', '*')

方法二:

jsonp技术

方法三:

代理服务器

jsonp技术

jsonp技术基本原理

利用HTML的<script>标签天生可以跨域这一特点,用其加载另一个域的json数据.

加载完成后会自动运行一个回调函数通知调用者。此过程需要另一个域的服务端支持

jsonp技术实现:

jsonp条件:

1、服务端支持

       响应数据包裹在一个函数中返回

{

                          resultCode:1,

                          resultInfo:{

                              username:'admin',

                              age:18

                          }

                       }

callBack({

                          resultCode:1,

                          resultInfo:{

                              username:'admin',

                              age:18

                          }

                       })

2、前端

    function callBack(data){

}

这种方法缺点就是只支持get请求。

实现方法示例:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值