同源策略,如何解决跨域


一.什么是同源策略

1.同源策略是一种约定。是浏览器最核心最基本的安全功能,避免其收到攻击,或被窃取数据

同源:协议 域名 端口

例:
http://www.test.com:8000/test.html

协议 子域名 主域名 端口 请求资源地址
只有协议 域名 端口一致才是同源

注意:即使两个不同的域名指向同一个ip地址,也是非同源

同源是浏览器的一种行为,当我们的请求发出去了,服务器也响应了,但是无法接收这就是非同源



二.跨域

协议、域名和端口任意一个不同

浏览器没有禁用安全限制

很多时候我们需要通过跨域来拿到数据



三.如何解决跨域

1.设置CORS跨域资源共享
请求头
请求方式 head get post

后台在请求头信息里面添加,在服务器端更改配置设置:
response.setHeader(“Access-Control-Allow-Origin”, “*”);

在这里插入图片描述

2.JSONP

JSONP也是解决同源问题的一种方法,可以让网页从别的域名(网站)中获取资料,既跨域读取数据

**在页面中类似于script标签img标签的src属性是不受同源限制的,所以可以用src属性直接获取到其它网站的资料 , JSONP可用使用src等属性向非同源的服务器端请求数据

使用JSONP解决步骤
1.将非同源的请求地址写在script标签的src属性内

<script src='http://localhost:3003/jsonp?callback=fn'></script>

2.服务器端响应数据必须是一个函数的调用, 真正要发送给客户端的数据需要作为函数调用的参数。

var data = {
    name: '阎涛',
    age: '19'
}
var wse = {
        name: '涛涛涛'
    }

fn(wse)

3.在客户端全局作用域下定义函数

    function fn(val) {
       
        }

4.在函数内部对返回的数据进行处理

 function fn(val) {
            console.log(val);
        }

JSONP的缺点

1.只支持get请求
2.安全性低

优点兼容性强,不受同源限制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值