前端集成 sentry 跨域怎么办?

按照 sentry 文档,将代码集成到前端项目里:

import * as Sentry from '@sentry/react';
import { Integrations } from '@sentry/tracing';

Sentry.init({
  dsn: 'http://xxxx@xxx:9000/2',
  integrations: [new Integrations.BrowserTracing()],
  tracesSampleRate: 1.0
});

但前端项目会报跨域:

我查了 sentry 文档和网上文章,几乎没找到靠谱的解决方案,这个应该怎么解决?

阅读 12.4k
5 个回答

既然跨域那么就是允许跨域咯。

  1. CORS。 'http://xxxx@xxx:9000/2' 这个服务端配置好。
  2. 本地代理,把 'http://xxxx@xxx:9000/2' 改成 '/2',然后在自己服务端 nginx 配置proxy_pass 咯
新手上路,请多包涵

想请教下,问题最后是如何解决的呢

新手上路,请多包涵

我的做法(docker安装的,自己的虚拟机vm 和 本地的前端项目)sentry v22.5.0(目前最新)版本 docker v20.10.16 docker-compose v2.6.0
1.删除所有sentry相关的容器,镜像
2.重新git下载源码,切换到想要的版本目录
3.重新./install.sh
4.重新docker-compose up -d
注。我还加个nginx去做反向代理,以下是nginx的配置

server{
  listen 9000;
  server_name  localhost;

  location / {
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Methods *;
    add_header Access-Control-Allow-Credentials true;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control no-cache;
    if ($request_method = 'OPTIONS') {
        return 200;
    }
  }
}

然后就成功了 状态码为200了
sentry跨域问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题