<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="style.xslt"?> <!-- or subfolder --> <?xml-stylesheet type="text/xsl" href="xslt/style.xslt"?> Instead of opening files directly ( file:// ), serve them via http://localhost .

# Windows chrome.exe --disable-web-security --user-data-dir="C:/chrome_dev" open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev" --disable-web-security Linux google-chrome --disable-web-security --user-data-dir="/tmp/chrome_dev" Solution 4: Enable CORS on Your Server If you control the server hosting the XSLT file, add CORS headers.

project/ ├── data.xml └── style.xslt

app.use((req, res, next) => res.header("Access-Control-Allow-Origin", "*"); next(); ); Embed the XSLT as a data URI:

npx http-server -p 8000 ⚠️ Only use this for local testing – do not browse normally with this flag.

The root cause is Chrome's security policy. The cleanest solution is to use a local web server instead of opening XML files directly from disk.

Header set Access-Control-Allow-Origin "*"