跨域

作者: 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