# Please Enable JS and Disable Any Ad Blocker

> Please enable JS and disable any ad blocker is the DataDome block page. What it means for a visitor, why a script gets it, and the call that returns the page.

[Home](https://quanticdata.io/) / [Web Unlocker](https://quanticdata.io/web-unlocker/) / Please enable JS

Block pages · DataDome

# "Please enable JS and disable any ad blocker": what it means

"Please enable JS and disable any ad blocker" is the block page of DataDome, a bot protection service that many sites put in front of their pages. It comes with status `403` when DataDome judges a request automated. A visitor usually clears it in the browser. A script gets the page with one Web Unlocker call.

[Start free](https://app.quanticdata.io/register?next=%2Funlock&utm_source=web-unlocker&utm_medium=website&utm_campaign=unlocker-guides&utm_content=please-enable-js-and-disable-any-ad-blocker-start-1) · [The DataDome guide](https://quanticdata.io/web-unlocker/bypass-datadome/)

- **91.7%**: of calls to DataDome-protected pages answered with the real page, canary of 11 November 2026
- **88.9%**: across all 27 protected targets of the same run
- **4.1 s**: median response across the run

- [What you are looking at](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#seen)
- [If you are a visitor](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#visitor)
- [If your script gets it](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#script)
- [Get the page](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#call)
- [Measured](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#measured)
- [Limits](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#limits)
- [FAQ](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/#faq)

## What you are looking at

The page is one sentence and a script. It does not name the site or the service, which is why it is so hard to search for. These are the marks that say it is DataDome.

| Where to look | What it shows |
| --- | --- |
| Status code | `403`. A blocked API call gets `403` with a small JSON body whose `url` points to `captcha-delivery.com`. |
| Text on the page | "Please enable JS and disable any ad blocker". Nothing else: no logo, no name, no explanation. |
| Which system | DataDome. The page carries a `var dd={...}` object and loads a script from `ct.captcha-delivery.com`. |
| Response header | `x-datadome: protected` on the answers of a protected site. |
| Cookie | `datadome`, set on every answer and refreshed each time. |
| What a browser shows next | A short screen that checks the device and clears by itself, or a slider puzzle to drag. |

![How to read the Please enable JS and disable any ad blocker page: first the sentence with its 403 status, then a block page with three marked zones (status, words, header), last a card that names the system as DataDome, the kind of block as a device check or a slider, the x-datadome header, and what to do next.](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/diagram.webp?v=20261111b1)

*What the page shows, which system sent it, and what to do next.*

## If you are a visitor

You are not locked out for good, and your account is not flagged. DataDome looked at one request, scored it as possibly automated and sent its check instead of the page. In a normal browser the check runs by itself and the page follows. When all you get is the sentence, something stopped the check from running.

- Turn JavaScript on for the site and pause the ad blocker or privacy extension on it, then reload. Both can stop the check script from loading, which is what the sentence is telling you.
- Try without the VPN or proxy. An address shared by many people scores worse than a home or mobile connection.
- Open the page in a normal window of an up-to-date browser. Reader modes, text browsers and page-saving tools cannot run the check.
- If a slider appears, drag it: it is the same check asking for a person.
- If the sentence is inside an archived copy or a link preview, the archive met the block when it saved the page, not you. Open the original address in your browser.
- Still blocked on a normal home connection? Contact the site. Only its team can see why DataDome scored you that way.

## If your script gets it

A script meets this page because DataDome scores every request before the site answers, and a scripted client fails on things a browser gets right without trying.

- The address: hosting ranges, and addresses that already sent a lot of traffic, start with a low score.
- The client: the handshake and the headers of an HTTP library do not match the browser named in its `User-Agent`.
- The check: the sentence comes with a script that has to run in a browser. `requests`, cURL and other HTTP clients cannot run it, so the `403` repeats however slowly you ask.
- The cookie: a `datadome` cookie copied from your own browser is refused when another client presents it.

The whole picture of the system is in the guide: [Bypass DataDome: Get Past the 403 Block Page](https://quanticdata.io/web-unlocker/bypass-datadome/).

## Get the page with one call

Send the same URL to the REST endpoint. With `mode: "auto"`, the default, the first attempt is a browser-grade request from a residential IP. When DataDome serves its device check, a real browser opens the page, lets the check finish and returns the page behind it.

cURL:

```bash
curl -X POST https://app.quanticdata.io/api/v1/scraper/unlock \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/", "country": "us"}'
```

Python:

```python
import requests

r = requests.post(
    "https://app.quanticdata.io/api/v1/scraper/unlock",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"url": "https://example.com/", "country": "us"},
    timeout=130,
)
page = r.json()["payload"]
print(page["status"], page["blocked"], page["latency_ms"], page["cost"])
print(page["body"][:500])
```

Node.js:

```javascript
const res = await fetch("https://app.quanticdata.io/api/v1/scraper/unlock", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ url: "https://example.com/", country: "us" }),
});
const { payload: page } = await res.json();
console.log(page.status, page.blocked, page.latency_ms, page.cost);
console.log(page.body.slice(0, 500));
```

For many pages of one site, keep calling from the same account. The first call waits for the device check; the next ones reuse the session, which the answer reports in `clearance`.

### What the answer tells you

| Field | What it says |
| --- | --- |
| `blocked` | `false` when the real page came back. `true` only when every attempt met the block; the block page is then in `body`. |
| `vendor` | The system the engine recognised on a blocked attempt. For this page: `datadome`. |
| `blockClass` | Usually `js_challenge` for the device check and `captcha` for the slider. |
| `tier_served` | `tls` for a browser-grade request, `browser` when a real browser had to open the page. |
| `attempts`, `latency_ms` | How many tries the call took and how long it lasted. |
| `cost` | The bytes this call moved and what it was charged. |

## Measured, with a date

In the canary of 11 November 2026, 11 of 12 calls to DataDome-protected pages came back with the real page. Across the whole run, 72 of 81 calls on 27 protected targets did, with a median response of 4.1 s.

A call counts only when the answer is 2xx and carries the real page, not a challenge. The list, the method and every run are on the [Web Unlocker status page](https://quanticdata.io/web-unlocker/status/).

## What it is for, and what it does not do

- It is for pages anyone can open in a browser without signing in: prices, listings, reviews, search results, public profiles.
- Challenges that need no human input are handled by the browser tier. An interactive captcha that asks a person to click, pick images or type is not solved: the answer comes back with `blocked: true` and `blockClass: "captcha"`, so your code can skip the page or try later.
- It does not log in for you and it does not create accounts. Pages behind a login stay behind it.
- Whether you may collect a page depends on the terms of the site and on the law that covers the data. A protection system does not change that, in either direction.

## Please enable JS: questions people ask

### What does "Please enable JS and disable any ad blocker" mean?

It is the block page of DataDome, a bot protection service. The site passed your request to DataDome, which scored it as possibly automated and answered with a check instead of the page. With JavaScript on and no blocker in the way, the check runs in your browser and the page loads.

### Which sites show this message?

Any site that uses DataDome: shops, news sites, marketplaces, travel and ticket sites. The sentence is DataDome's own and looks the same everywhere, which is why it names neither the site nor the service. The x-datadome header and a script from captcha-delivery.com confirm where it comes from.

### Why do I see it in Chrome, Firefox, Safari or Edge with JavaScript on?

Usually an extension or a network setting stopped the check script: an ad blocker, a privacy extension, strict tracking protection, a VPN or a company proxy. Pause the extension for that site, turn the VPN off and reload. If it still appears, the address you browse from has a poor reputation.

### Why does an archived copy or a link preview show this sentence?

Because the archive or the preview service fetched the page with an automated tool, and DataDome answered that tool with its block page. What was saved is the block, not the article. Your own browser is not blocked: open the original address and the page loads as usual.

### How do I get past it with Python or cURL?

Not with the library alone: it cannot run the device check, so every request gets the same 403. Send the URL to the Web Unlocker instead. It is still one POST from Python or cURL; the request that reaches the site is browser-grade, and a real browser opens the page when the check is served.

### Does the Web Unlocker solve the DataDome slider?

The device check, the screen that clears by itself, is passed by the browser tier. The slider puzzle asks for a person and is not solved: the answer comes back with blocked: true and blockClass captcha, and the next call leaves from a fresh exit, so your code can simply retry.

## Send the URL that shows you this page

Create the free account, open Web Unlocker in the dashboard and paste the URL into the test box. The answer shows the status, the tier that served the page, the attempts and the cost of the call.

[Start free](https://app.quanticdata.io/register?next=%2Funlock&utm_source=web-unlocker&utm_medium=website&utm_campaign=unlocker-guides&utm_content=please-enable-js-and-disable-any-ad-blocker-start-2) · [How the Web Unlocker works](https://quanticdata.io/web-unlocker/)

Block pages:

- [Block page dictionary](https://quanticdata.io/web-unlocker/block-pages/)
- ["Access Denied ... on this server"](https://quanticdata.io/web-unlocker/access-denied-on-this-server/)
- [Error 1015](https://quanticdata.io/web-unlocker/cloudflare-error-1015/)
- [Error 1020](https://quanticdata.io/web-unlocker/cloudflare-error-1020/)
- ["Just a moment..."](https://quanticdata.io/web-unlocker/cloudflare-just-a-moment/)
- ["Pardon Our Interruption"](https://quanticdata.io/web-unlocker/pardon-our-interruption/)
- [Press and hold CAPTCHA](https://quanticdata.io/web-unlocker/press-and-hold-captcha/)
- ["The requested URL was rejected"](https://quanticdata.io/web-unlocker/request-rejected-support-id/)
- [Cloudflare Turnstile](https://quanticdata.io/web-unlocker/cloudflare-turnstile/)
- [CAPTCHA when scraping](https://quanticdata.io/web-unlocker/captcha-when-scraping/)

Guides:

- [DataDome guide](https://quanticdata.io/web-unlocker/bypass-datadome/)
- [Cloudflare](https://quanticdata.io/web-unlocker/bypass-cloudflare/)
- [Akamai Bot Manager](https://quanticdata.io/web-unlocker/bypass-akamai/)
- [PerimeterX (HUMAN)](https://quanticdata.io/web-unlocker/bypass-perimeterx/)
- [Kasada](https://quanticdata.io/web-unlocker/bypass-kasada/)
- [Imperva (Incapsula)](https://quanticdata.io/web-unlocker/bypass-imperva/)
- [F5 BIG-IP and Shape](https://quanticdata.io/web-unlocker/bypass-f5/)
- [AWS WAF](https://quanticdata.io/web-unlocker/bypass-aws-waf/)

Also:

- [Web Unlocker](https://quanticdata.io/web-unlocker/)
- [Status and canary](https://quanticdata.io/web-unlocker/status/)
- [Residential proxies](https://quanticdata.io/residential-proxies/)
- [Mobile proxies](https://quanticdata.io/mobile-proxies/)

## References

By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData · Published 11 November 2026 · Updated 11 November 2026 · [Read as Markdown](https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/index.md)

- [DataDome docs: response pages (device check, captcha, block)](https://docs.datadome.co/docs/response-pages)
- [DataDome docs: Device Check](https://docs.datadome.co/docs/device-check)
- [DataDome docs: cookies and stored data](https://docs.datadome.co/docs/cookie-session-storage)
- [RFC 9110, section 15.5.4: 403 Forbidden](https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.4)
- [Web Unlocker in the QuanticData API docs: request, answer, errors and how to read a block (vendor and blockClass)](https://quanticdata.io/docs/#tag/Web-Unlocker)
- [Web Unlocker status: the canary list, the method and every run](https://quanticdata.io/web-unlocker/status/)

---

Source: https://quanticdata.io/web-unlocker/please-enable-js-and-disable-any-ad-blocker/ · Site index for AI: https://quanticdata.io/llms.txt
