Skip to content

Tracing headers are attached to protocol-relative URLs by default, causing CORS errors #8099

Closed
@gongpeione

Description

@gongpeione

Is there an existing issue for this?

How do you use Sentry?

Sentry Saas (sentry.io)

Which SDK are you using?

@sentry/browser

SDK Version

7.48.0

Framework Version

No response

Link to Sentry event

No response

SDK Setup

const options = {
    ...
    tracesSampleRate: 1,
    integrations: [
        new Sentry.BrowserTracing()
    ]
}

Steps to Reproduce

  1. import and setup Sentry
  2. add a request like fetch('//xxx.xxx.com/xxx')
  3. run the code
  4. custom headers added to requests and causes CORS error

Expected Result

Based on my understanding of the line const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\//]; Link, I would expect custom headers to only be added to non-cross-origin requests by default. This would be the case if the requests are targeting 'localhost' or if the request URL starts with a '/'.

However, I've noticed that this logic might not account for protocol-relative URLs (those starting with //, like //example.com). If my understanding is correct, this could potentially result in custom headers being added to these types of requests, which might not be the intended behavior

Actual Result

custom headers added to requests and cause CORS error.

If possible, I can submit a pull request to address this issue.

Metadata

Metadata

Assignees

Labels

Package: browserIssues related to the Sentry Browser SDK

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions