JSONP及Axios

一、JSONP

        概述:一种非官方的跨域解决方案,主要利用了script标签不受跨域影响的特性来完成对应的请求操作,实际上是一个get请求(默认get)

        什么叫跨域?

                同源策略:ajax的一种安全机制,当域名、端口号、协议三者不一致时,会产生跨域

                跨域的产生:协议不同、端口不同、ip地址不同、ftp请求资源不同

         解决方案:

                后端解决:

response.setHeader('Access-Control-Allow-Origin','*') //设置所有的请求地址都允许跨域
response.setHeader('Access-Control-Allow-Origin-Method','*') //设置所有请求方法都允许跨域

                前端解决:(JSONP)

                代理服务器:

iframe script link 都不受跨域的影响(src href)
webSocket(套接字)

        

        JSONP优缺点

                优点:不受同源策略影响;兼容性好,跨域在古老浏览器中运行;请求完毕调用回调函数的方式传回结果

                缺点:只支持get请求(主要运用于查询)

        JSONP流程    (回调函数是服务端调用的)

<script>
// var wd = '奥特曼'
function fn(result){
console.log(result);
}
</script>
<script src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=奥特曼
&cb=fn"></script>

  

        

二、HTTP协议

        缓存

提高文件访问速度,减少请求。提高效率。重复请求服务器不会重复响应

        

        强制缓存(http请求里面)

                不会发送请求(直接从缓存中读取)状态200       

                cache-control http2.0 缓存控制器 相对时间       expires http 1.0 过期时间 绝对时间      

cache-control:max-age=60
//60秒内 再访问这个网站 从本地读

               

        协商缓存(HTTP请求里面)

                协商缓存一定会请求,如果文件改变就会通过协商缓存(重定向)状态码304(没变)200变了

                etag 标识根据对应hash码生成一个特定的码,文件一变这个码会重新生成(根据它就可以区分是否变
化了)
                last-modified 最后的修改时间 (时间如果改了 证明对应文件就变了 就可以区分文件是否发生变化)

三、Axios

        基于promise的HTTP请求库

        特性:


                从浏览器中创建 XMLHttpRequests
                从 node.js 创建 http 请求
                支持 Promise API
                拦截请求和响应(拦截器)
                转换请求数据和响应数据 (自动进行数据转换)
                取消请求(可以请求取消)
                自动转换 JSON 数据 (转换的数据形式以json格式体现)
                客户端支持防御 XSRF (安全性高)

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...