前端跨域解决方案

跨域请求

全称:非同源策略请求(同源即同协议、同域名和同端口),而ajax专门用于处理同源策略请求,因此对于非同源请求,特别是在前后端分离的项目当中,我们就会面临这类问题。
这里要声明一下:跨域是浏览器行为,而不是服务器行为(当前台向服务器发起请求时,后台并没有阻止请求操作,但后台返回数据时,浏览器基于安全考虑,若非同源请求,将可能禁止对请求数据的处理)

常用跨域解决方案

基于Jsonp

我们可以发现在html当中含有src属性的标签,如///

  • b.html

  
  

参考:https://www.cnblogs.com/yyy6/p/9481671.html

基于H5的web socket

由于原生web socket不太好使用,这里使用socket.io(对web socket进行了封装的框架)进行示例:

  • 服务端(基于node):
const server = require("http").createServer();
const io = require("socket.io")(server);
io.on("connection", client => {
  client.on("event", data => {
    console.log(data);
  });
  client.on("message", msg => {
    console.log(msg);
  });
  client.on("disconnect", () => {
    console.log("server has closed!");
  });
});
server.listen(3000);
  • 客户端:

  
  
  

web socket使用参考:https://zhuanlan.zhihu.com/p/74326818
使用WebSocket进行跨域数据请求参考:https://blog.csdn.net/itkingone/article/details/83818278

你可能感兴趣的:(前端跨域解决方案)