跨域

作者: Gia_Mo | 来源:发表于2017-07-06 16:08 被阅读0次
    题目1:什么是同源策略?

    同源策略,Same-origin policy,浏览器处于安全考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。同源策略的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

    同源必须满足以下3点:

    • 同协议:常见协议有http、https、file、ssh、ftp、mailto、tel

    • 同域名:比如http://jirengu.com/bhttp://jirengu.com/c

    • 同端口号:URL默认不写端口,默认端口就是80。注意默认80端口和8080端口是不同的。

    题目2:什么是跨域?跨域有几种实现形式

    跨域,就是不同域名的接口之间实现交互,包括传输数据,操作DOM元素等资源。

    跨域有四种实现形式:

    • JSONP
    • CORS
    • 降域
    • postMessage
    题目3:JSONP 的原理是什么

    JSONP 的原理简单来说就是html中script标签可以引入其他域下的js。利用这个特性,可实现跨域访问接口。

    实现流程如下:

    1. 通过事件触发,前端实现新增script元素。srcipt的src为接口路径。新增script元素的时候,就会默认执行src所指路径,就会向后台发起跨域请求。

    2. 在前端自定义一个函数,用于获取后台响应返回的数据后,对数据进行具体操作。

    3. 在后端,对响应请求后返回的数据进行包装。把响应数据转化为JSON格式的字符串,然后再加上与前端自定义函数名称相同的字符串,然后发送这个包装数据给前端。

    4. 前端在事件触发新增script元素,执行src所指接口路径时,因为返回数据的格式与自定义的函数相同,就会执行自定义的函数内容,实现对数据的具体操作。

    题目4:CORS是什么

    Cross-Origin Resource Sharing,跨域资源共享,是一种ajax跨域请求资源的方法。

    在使用AJAX的基础上,跨域请求时,浏览器会在请求头Request headers加上“origin:发起请求的域名”。在后端代码加上res.header("Accsess-Control-Allow-Origin","*")res.header("Accsess-Control-Allow-Origin","具体URL域名"),这样会让浏览器对任何域名或这个指定的域名发送的请求给予回应。

    相关文章

      网友评论

          本文标题:跨域

          本文链接:https://www.haomeiwen.com/subject/burvottx.html