美文网首页
跨域问题的解决方案

跨域问题的解决方案

作者: 怪爵Geekknight | 来源:发表于2018-11-24 19:29 被阅读0次

    跨域问题的由来

    由于浏览器的同源策略导致,同源策略的解释是:javascript脚本不能请求不同协议或不同域名或不同端口的url

    跨域问题的解决方案

    1.jsonp

    由于<script/>标签的src的是没有同源策略的。利用<script/>请求的方案就是jsonp.具体做法是是需要定义一个function,这个function需要有参数。<script/>请求的时候把这个方法名告知服务端,服务端的获取此方法名,在传给前端的js脚本中调用此方法,参数为数据。如:

    <script>
      function a(result) {
        console.log(result);
          }
    </script>
    <script src="https://www.others.com?callback=a" />
    

    2.cors

    cors是跨源资源分享(Cross-Origin Resource Sharing)的缩写,需要前后端配合,其原理是前端在请求时候带上origin: *** 字段,服务端在返回的时候带上Access-Control-Allow-Origin: *** 字段则可以了。

    3.nginx反向代理

    利用nginx反向代理功能请求,如下,把请求/apis的所有接口代理到127.0.0.1:4000:

    location /apis {
      proxy_pass http://127.0.0.1:4000;
      proxy_http_version 1.1;
    }
    

    相关文章

      网友评论

          本文标题:跨域问题的解决方案

          本文链接:https://www.haomeiwen.com/subject/zvbyqqtx.html