解决跨域的三种方法?

286 阅读1分钟

什么是跨域:跨域指的是浏览器需要遵循同源策略,只要协议端口域名有一个不同,就会跨域

思考:aiax可以跨域吗?不能

解决方案:

1.jsonp

缺点:只能get请求 比如:文件上传FormDate需要请求体就不行,除了老项目 已经没人用了
原理:动态的创建script 添加src属性(但这个请求是异步的) ,在页面上声明了一个函数,服务器发挥的是函数调用

2.cors

原理:在响应头添加 Access-Control-Allow-Origin:*

3.反向代理

原理:只有浏览器上有同源策略,服务器与服务器之间数据通信不存在跨域问题.
module.exports = {
 proxy: {
      // 请求时的路径包含/api 就会走代理服务器
      '/api': {
        // target目标:真实的接口服务器
        target: ' http://ihrm-java.itheima.net '
        // pathRewrite:路径重写
        // pathRewrite: {
        //   '^/api': ''
        // }
      }
    }
}