扫码关注公众号

前端校招考点之跨域
05-25
579观看
01

下面有关浏览器中使用js跨域获取数据的描述,说法错误的是( )

正确答案是B只要协议、域名、端口有任何一个不同,都被当作是不同的域

来自:浏览器、网络相关-跨域、jsonp
02

如何解决跨域问题?

理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域 出于安全考虑,服务器不允许ajax跨域获取数据,但是可以跨域获取文件内容,所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,这就是解决跨域问题的主流解决方案

来自:浏览器、网络相关-跨域、jsonp
03

跨域方式,jsonp具体流程是什么,如何实现原生Jsonp封装,优化,对于CORS,服务器怎么判断它该不该跨域呢

常见的跨域方式大概有七种,大致可分为iframe、api跨域1、JSONP,全称为jsonwithpadding,解决老版本浏览器跨域数据访问问题,原理是web页面调用JS文件不受浏览器同源策略限制,所以通过script标签可以进行跨域请求,流程如下:首先前端设置好回调参数,并将其作为URL的参数服务器端收到请求后,通过该参数获取到回调函数名,并将数据放在参数中返回收到结果后因为是script标签,所以浏览器当做脚本运行,2、cors,全称是跨域资源共享,允许浏览器向跨源服务器发出XMLHTTPRequest请求,从而克服了ajax只能同源使用的策略,实现cors的关键是服务器,只要服务器实现了cros接口,就可以跨域通信前端逻辑很简单,正常发起ajax请求即可,成功的关键在于服务器Access-Control-Allow-Origin是否包含请求页面的域名,如果不包含的话,浏览器将认为这是一次失败的异步请求,将会调用xhr.onerror中的函数。Cros使用简单,支持POST方式,但是存在兼容问题浏览器将cors请求分为两类,简单请求和非简单请求对于简单请求,浏览器直接发出cors请求,就是在头信息之中增加一个origin字段,用于说明本次请求来自哪个协议+域名+端口,服务器根据这个值,决定是否同意本次请求,如果服务器同意本次请求,返回的响应中会多出几个头信息字段:Access-Control-Allow-Orign:返回origin的字段或者*Access-Control-Allow-Credentials,该字段可选,是一个bool值,表示是否允许发送cookie,Access-Control-Expose-Headers3、服务器代理:即当你有跨域的请求操作时发给后端,让后端帮你代为请求

来自:浏览器、网络相关-跨域、jsonp
04

下列哪些功能默认支持跨域?

正确答案是B跨域:发起请求与指向资源域不相同(协议+域名+端口)常见有指向资源的部件:<a>,<form>,<img>,<script>,<iframe>,<link>等标签以及Ajax

来自:浏览器、网络相关-跨域、jsonp
课程
专栏
js语言和框架-浏览器、网络相关-跨域、jsonp
3专栏
1课程
4 试题
热门专题