美文网首页
浏览器跨域问题及常用解决方法

浏览器跨域问题及常用解决方法

作者: 弹力盒 | 来源:发表于2021-08-01 14:41 被阅读0次

1、跨域定义

只要协议、域名、端口有任何一个不同,都被当作是不同的域,前端跨域是浏览器特有的一种安全策略

2、作用范围
跨域是浏览器特有的一种安全机制,后端服务等不存在跨域情况

3、解决方案

  • a、后端设置响应头的 Access-Control-Allow-Origin 属性
// 全局拦截所有请求,做相关的操作
app.all('*', (req, res, next) => {
  if (req.method === 'OPTIONS') {
    return false;
  }
  
  // 支持跨域
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Methods', '*');
  res.header('Content-Type', 'application/json;charset=utf-8');

  next();
});
  • b、前端通过代理的方式请求接口,如 webpack 的 devServer
devServer: {
    before: function (app, server, compiler) {
      /* mock 接口 */
      app.get('/api/demo', (req, res) => {
        setTimeout(() => {
          res.send({
            data: 'something...'
          })
        }, 5000)
      })
    },
    proxy: {
      '/api': {
        /*
         * 将来自 http://localhost:8000/api
         * 的请求资源全部转发为 /api开头的请求
         */
        target: 'http://localhost:8000/api',
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          '^/api': ''
        }
      },
      '/tools': {
        /*
         * 将来自 http://www.tanglihe.cn/tools 
         * 的请求资源全部转发为 /tools开头的请求
        */
        target: 'http://www.tanglihe.cn/tools',
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          '^/tools': ''
        }
      }
    }
  }
  • c、JSONP 请求数据(JSONP 只支持 GET 请求)

相关文章

  • 前端跨域问题

    B/S架构的项目中前端经常会遇到跨域问题,什么是跨域问题,常用的解决方法又有哪些呢?可能大多数人对跨域问题都只是一...

  • 浏览器跨域问题及常用解决方法

    1、跨域定义 只要协议、域名、端口有任何一个不同,都被当作是不同的域,前端跨域是浏览器特有的一种安全策略 2、作用...

  • 知识点整理之---跨域是什么,为什么会有跨域?跨域的解决方法是什

    跨域是什么,为什么会有跨域?跨域的解决方法是什么?常用的是什么?原理是什么? 面对这一连串问题,是不是很懵?让我们...

  • 前端面试题摘录

    Q:什么情况下会碰到跨域问题?有哪些解决方法? 跨域问题是这是浏览器为了安全实施的同源策略导致的,同源策略限制了来...

  • 面试题总结

    Q:什么情况下会碰到跨域问题?有哪些解决方法? 跨域问题是这是浏览器为了安全实施的同源策略导致的,同源策略限制了来...

  • 解决跨域问题

    概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现...

  • 跨域问题

    概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现...

  • AJAX跨域

    原因: 浏览器限制 跨域(协议、域名、端口) XMR(XMLHttpRequest请求) 解决方法: 浏览器:命令...

  • Ajax的跨域问题

    什么是跨域及来源 跨域问题来源于浏览器的同源策略,JavaScript只能访问和操作自己域下的资源,不能访问和操作...

  • SpringBoot 解决跨域问题

    SpringBoot 跨域问题解决方法

网友评论

      本文标题:浏览器跨域问题及常用解决方法

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