跨域的解决方法

57 阅读1分钟

www.xxx.com:8080 , 其中http为协议,www.xxx.com 为主机:8080为端口号;这三个有一个不同就属于跨域。

  1. JSONP 利用script标签,通过里面的src属性传递需要访问的服务器地址及参数由于script标签在拿到服务器响应的数据后会立即执行为了避免这种情况,可以在服务端将真实响应的数据进行包装也就是在真实数据外面包裹一个js函数再以json的格式响应给客户端,这时就需要在客户端提前设置好一个函数(这个函数专门处理服务器传递过来的json数据)客户端收到数据后调用提前设置好的函数执行服务器传过来的数据。
  • JSONP的缺点:只支持get不支持post。
  • 前端代码示例
<script>
    function bb (data) {
        console.log(data)
    }
</script>
<script src='https://www.xxx.com/callback=bb' type="text/script"></script>
  1. CORS 主要由服务器进行设置Access-Control-Allow-Origin头部。

  2. 反向代理 服务器设置nginx反向代理,就可以让前端页面请求反响代理反向代理再把请求转给目标服务器。