龙空技术网

Web前端面试题剖析:数据交互

程序猿猩球 352

前言:

此时朋友们对“ajax跨子域访问可以吗”大概比较关心,同学们都想要剖析一些“ajax跨子域访问可以吗”的相关文章。那么小编也在网摘上汇集了一些关于“ajax跨子域访问可以吗””的相关文章,希望你们能喜欢,姐妹们快快来学习一下吧!

本系列web面试专题将常见的数据交互问题分为初级、中级、高级三部分。

本次详解基础数据交互问题,以5道常见考题为例。

基础:同源策略和跨域概念三大类跨域技术CORS配置与使用JSONP使用与原理探索代理数据访问

1、什么是跨域?【演示-跨域报错】

浏览器的同源策略会导致跨域,这里同源策略又分为以下两种

DOM同源策略:禁止对不同源页面DOM进行操作。这里主要场景是iframe跨域的情况,不同域名的iframe是限制互相访问的。

XmlHttpRequest同源策略:禁止使用XHR对象向不同源的服务器地址发起HTTP请求。

只要协议、域名、端口有任何一个不同,都被当作是不同的域,之间的请求就是跨域操作。

2、跨域的方式有哪些?

CORS【跨域资源共享】、jsonp、服务器代理、document.domain来跨子域+iframe、location.hash跨域+iframe、使用postMessage实现页面之间通信+iframe

3、jsonp是什么?

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

JSONP是一种非正式传输协议,该协议的一个要点就是允许用户传递一个callback参数给服务端,

然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

4、怎么使用jsonp?

callback({

'name': 'Song',

'email': '2060884089@qq.com'

})

可以运行远程服务器上的js;这个地球人都知道。【引入外包js,比如cdn】

调用本地函数,进行数据交互。

5、jsonp的缺陷有哪些?

只能传递get请求。

ajax和jsonp本质上是不同的东西。

ajax的核心是通过XmlHttpRequest获取非本页内容。

jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。

本次面试专题系列主要解析数据交互问题,下一篇为大家带来数据交互中级面试题分析。敬请期待!提前感谢关注、评论、转发、收藏~

标签: #ajax跨子域访问可以吗