jsonp
jsonp是通过动态创建 < script > 元素来实现的,利用src属性发起的请求不会被浏览器视为跨域请求的特性,为script标签的src属性指定一个url地址。通过将前端方法作为参数传递到服务器端,然后由服务器端注入参数之后再返回,实现服务器端向客户端通信,由于使用script标签的src属性,因此只支持get请求
function jsonp(url,callback,data){
data = data ? data : {};
let str = "?";
for(let i in data){
str += `${i}=${data[i]}&`;
}
let d = new Date();
url += str + "__qft=" + d.getTime();
let script = document.createElement("script");
script.src = url;
document.body.appendChild(script);
window[data[data.columnName]] = function(res){
callback(res);
}
}
CORS
跨域资源共享通过新增一组HTTP首部字段,允许服务端声明哪些服务器有权限访问哪些资源
Access-Control-Allow-Origin: [origin] | *; // 响应首部中可以携带这个头部表示服务器允许哪些域可以访问该资源
Access-Control-Allow-Methods:[method]; // 该首部字段用于预检请求方式的响应,指定实际请求所允许使用的HTTP方法
Access-Control-Allow-Headers:[file-name]; // 该首部字段用于预检请求中的响应,指明了实际请求中允携带的首部字段
Access-Control-Max-Age: 缓存时间;// 指定请求能够被缓存多久
Access-Control-Allow-Credentials: true;// 表示是否允许发送cookie,默认情况下,cookie不包括再CORS请求之中,设为true,即表示服务器明确许可,Cookie可以包含再请求中,一起发给服务器
代理和反向代理
- 代理,也称为正向代理,是指一个位于客户端和目标服务器之间的服务器,为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标服务器,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。
- 反向代理是指以代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求的客户端,此时代理服务器对外表现为一个反响代理服务器