考核内容:ajax跨域异步操作数据
题发散度: ★★
试题难度: ★★
解题思路:
Ajax的全称是Asynchronous JavaScript and XML
- Ajax 是什么?
答:Ajax是一种可以在浏览器和服务器之间使用异步数据传输(HTTP请求)的技术。使用它可以让页面请求少量的数据,而不用刷新整个页面。而传统的页面(不使用Ajax)要刷新部分内容,必须重载整个网页页面。
- Ajax 基于什么?
答:它基于的是XMLHttpRequest(XHR)。这是一个比较粗糙的API,不符合关注分离的设计原则(Separation of Concerns),配置和使用都不是那么友好。
- $.ajax 的产生背景?
答:基于上面的原因,各种ajax库引用而生,然而最有名的就是jQuery的API中的 $.ajax() 。$.ajax() 它的一个优势异步操作,但jQuery的异步操作是基于事件的异步模型,没有promise那么友好。
- fetch 产生的背景?
答:综合上面所讲的各种因素,fetch这个api应运而生。fetch接口是用来解决Ajax(xhr)在写法和调用上的不合理和开放的js接口,Fetch 是浏览器提供的原生 AJAX 接口。使用 window.fetch 函数可以代替以前的 $.ajax、$.get 和 $.post。
- 什么是同源?
答:协议、域名、端口都相同的网站就是同源网站,否则就是非同源。 ajax只要是同源就不需要考虑跨域限制。
- 为什么要跨域?
答:ajax不能向非同源服务器发送请求。其实请求可以发送出去,但是浏览器会拒绝接收响应。如何解决这个问题呢?这就是跨域的解决方案
三种方案分别是:代理,CORS(跨域资源共享),JSONP
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
因为出于安全的考虑, 浏览器不允许Ajax调用当前源之外的资源. 即浏览器的同源策略.
CORS需要浏览器和服务器同时支持。目前,所有主流浏览器都支持该功能,在浏览器端, 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。
jquary 只是封装了AJAX的方法,即使不加载jquery也可以实现AJAX
参考:
JS基础测试: 下列关于Ajax的描述正确的是?
答案:错误的是
D. AJAX是一种技术,或者说是一种思想,
用来实现异步刷新,使用时必须加载JQUERY。
常见考试类型:
- 什么是AJAX,为什么要使用Ajax?
- AJAX应用和传统Web应用有什么不同?
- 请介绍一下XMLhttprequest对象?
- Ajax的实现流程是怎样的?
- AJAX请求总共有多少种CALLBACK?
- AJAX有哪些有点和缺点?
- 请解释一下 JavaScript 的同源策略?
- 阐述一下异步加载JS?
- 如何解决跨域问题?
- Ajax 解决浏览器缓存问题?
相关推荐:
前端测试题:(解析)关于JS中this关键字的说法,下面错误的是?
微应用:不足百行代码实现绚丽的机械表运行效果
前端测试题:关于Map结构的介绍,下面说法错误的是?
前端测试题:(必考)关于JS函数防抖和函数节流,说法错误的是?
前端测试题:(必考)有关于ES6中Promise方法的使用,说法错误的是?
前端测试题:有关于前端对web安全及防护说明,下面错误的是?
前端测试题:有关于WEB服务中,HTTP和HTTPS的说法,错误的是?
前端测试题:对于WEB服务有关http的响应状态码及含义,说法有误的是?
前端测试题:有关于get、post的区别,下面说法错误的是?
前端测试题:有关于js中跨域请求的说法,错误的是?
前端测试题:有关于下面盒模型,说法错误的是?
前端测试题:关于WEB中常用的度量单位,表述错误的是?
前端测试题:关于javascirpt中,typeof判断数据类型中不可能出现的是
前端测试题:var str=’shuke‘ 字符串值(shuke)转为变量名的方法正确的是?
前端测试题:有关于JS 中的主要错误,表述错误的是?
前端测试题:有关于双向绑定功能在ES6中实现的数据代理(数据劫持),表述有错误的是?
前端测试题:以下浏览器对js显示数据方法,表述错误的是?
前端测试题:关于JAVASCRIPT中以下操作输出的是TRUE的是?
前端测试题: 关于this的用法下面说法正确的是?
前端测试题:有关于JAVASCRIPT闭包说明正确的是?
前端测试题:如何理解JS中对数据的深浅拷贝?
前端测试题: 关于定义常量的关键字const,定义一个Object对象,再对属性的值进行修改,下列说法正确的?
前端测试题:ES6中想要获取Map实例对象的成员数,利用的属性是?
前端测试题:module模块中的注意事项,下列说法错误的?
前端测试题:module模块中,对下列语句的描述,错误的是?
前端测试题:关于ES6的module模块,下列说法错误的是?
前端测试题:在Generator函数中," yield* "语句的作用是?
前端测试题:Generator函数的yield关键字的作用是?
前端测试题:关于新特性Generator函数的描述,错误的是?
前端测试题:关于Iterator遍历器的说法,错误的是?
前端测试题: 下列数据结构中,不能被for...of遍历的是?
前端测试题:在类的继承中,关于super的说法错误的是?
前端测试题:下面关于类class的描述,错误的是?
前端测试题:关于Promise对象的状态,下列说法错误的是?
前端测试题:关于WeakMap结构,下列说法错误的是?
前端测试题:下列Map结构的键名数据类型,描述错误的是?
前端测试题:关于Map结构的介绍,下面说法错误的是?
前端测试题: 关于WeakSet结构,说法错误的是?
前端测试题: 关于set结构,下面说法错误的是?
前端测试题: 关于for...of的简述,说法错误的是?
前端测试题: 关于Proxy代理,下面说法错误的是?
前端测试题: 下面Symbol运算结果,结果为true的是?
前端测试题: 关于Symbol,错误的说法是?
前端测试题: 关于箭头函数的描述,错误的是?
前端测试题: 数组扩展的fill( )函数,[1,2,3].fill(4)的结果是?
前端测试题: 数组的扩展中,不属于用于数组遍历的函数的是?
企业面试题: 关于对象的Object.is函数,错误的是?
关于对象的扩展,错误的是?
企业面试题: 对前端工程师这个职位是怎么样理解的
企业面试题: 为什么要初始化CSS样式
企业面试题:CSS中 link 和@import 的区别是什么
企业面试题:position的absolute与fixed共同点与不同点
企业面试题:用css实现div在不同分辨率屏幕上下左右居中
企业面试题: 解释css sprites 如何使用?
企业面试题: 1&&2,1||2代码的输出值是?
企业面试题: cookies,sessionStorage 和 localStorage 的区别?
企业面试题: 关于JS在使用过程中 0.1+0.2!=0.3 的问题
企业面试题:js编写数组去重方法
企业面试题: 实现一个事件委托(事件代理)
企业面试题:如何显示/隐藏一个DOM元素
企业面试题:如何实现浏览器内多个标签页之间的通信
企业面试题:去除字符串空格
企业面试题:关于js闭包
企业面试题:如何实现实现1+2+......+n
企业面试题:变量作用域