2019-11-13跨域问题面试回答

为什么会有跨域

浏览器之间有同源策略,同源策略会阻止一个域的脚本与另一个域的脚本之间实现交互,两者之间必须要有相同的协议,主机和端口号;

什么是跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

如何解决

  1. 使用JSONP;
    使用方式是通过在html的页面添加script标签,通过回调函数返回数据;
    例子:


// 向服务器test.com发出请求,该请求的查询字符串有一个callback参数,用来指定回调函数的名字
 
// 处理服务器返回回调函数的数据

优点:常用方法,简单实用,兼容性好;
缺点:不支持post请求,只支持get;
JSON和JSONP的区别:
1.JSONP是应用JSON的一种新方法;
2.JSONP是返回一个函数调用,是脚本代码,JSON是一串数据;

  1. 反向代理,
    nginx
  2. CORS是W3C标准,需要在前后端都进行修改;

参考:https://blog.csdn.net/qq_38128179/article/details/84956552

你可能感兴趣的:(2019-11-13跨域问题面试回答)