2022.05.05
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
在 js 高程里面的定义是: 指有权访问另一个函数作用域中的变量的函数。然后我自己的理解闭包其实只是一个绑定了执行环境的函数,能够在函数声明过程中,将环境信息与所属函数绑定在一起的数据结构。它是基于函数声明的文本位置的,因此也被称为围绕函数定义的静态作用域或词法作用域。
什么是简单请求
简单请求:
**方法:HEAD GET POST **HTTP 的头信息不超过以下字段 1.Accept、 1.Accept-Language、 1.Content-Language、 1.Last-Event-ID、 1.Content-Type:只限于三个值 application/x-www-form-urlencoded、multipart/form-data、text/plain
这是为了兼容表单(form),因为历史上表单一直可以发出跨域请求。AJAX 的跨域设计就是,只要表单可以发,AJAX 就可以直接发
非简单请求: 凡事不能满足上面两个条件,就属于非简单请求。常见的非简单请求是那种对服务器有特殊要求的请求,比如请求方法是 PUT 或 DELETE,或者 Content-Type 字段的类型是 application/json。
非简单请求的 CORS 请求,会在正式通信之前,增加一次 HTTP 查询请求,称为"预检"请求(preflight)。
为什么要对非简单跨域请求做预检?
"预检"请求用的请求方法是 OPTIONS,表示这个请求是用来询问的。头信息里面,关键字段是 Origin,表示请求来自哪个源。
除了 Origin 字段,"预检"请求的头信息包括两个特殊字段。
(1)Access-Control-Request-Method 该字段是必须的,用来列出浏览器的 CORS 请求会用到哪些 HTTP 方法。 (2)Access-Control-Request-Headers
该字段是一个逗号分隔的字符串,指定浏览器 CORS 请求会额外发送的头信息字段,上例是 X-Custom-Header。
简单来说,分为四步: ① JS 内部首先会先生成一个对象; ② 再把函数中的 this 指向该对象; ③ 然后执行构造函数中的语句; ④ 最终返回该对象实例。