/cloudflare-cors-anywhere

CORS "anywhere" proxy in a Cloudflare worker.

Primary LanguageJavaScriptMIT LicenseMIT

cloudflare-cors-anywhere

Cloudflare CORS proxy in a worker.

CLOUDFLARE-CORS-ANYWHERE

Source: https://github.com/Zibri/cloudflare-cors-anywhere

Demo: https://test.cors.workers.dev

Donate: https://paypal.me/Zibri/5

Post: http://www.zibri.org/2019/07/your-own-cors-anywhere-proxy-on.html

Deployment

This project is written in Cloudfalre Workers, and can be easily deployed with Wrangler CLI.

wrangler publish

Usage Example

fetch('https://test.cors.workers.dev/?https://httpbin.org/post', {
  method: 'post',
  headers: {
    'x-foo': 'bar',
    'x-bar': 'foo',
    'x-cors-headers': JSON.stringify({
      // allows to send forbidden headers
      // https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
      'cookies': 'x=123'
    }) 
  }
}).then(res => {
  // allows to read all headers (even forbidden headers like set-cookies)
  const headers = JSON.parse(res.headers.get('cors-received-headers'))
  console.log(headers)
  return res.json()
}).then(console.log)

Note:

All received headers are also returned in "cors-received-headers" header.

Note about the DEMO url:

Abuse (other than testing) of the demo will result in a ban.
The demo accepts only fetch and xmlhttprequest.

To create your own is very easy, you just need to set up a cloudflare account and upload the worker code.

My personal thanks to Damien Collis for his generous and unique donation.