Skip to main content

Build Status Latest Version Downloads Supported Python versions License

A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible.

Installation

Install the extension with using pip, or easy_install.

$ pip install flask-cors

Usage

This extension enables CORS support either via a decorator, or a Flask extension. There are three examples shown in the examples directory, showing the major use cases. The suggested configuration is the simple_example.py, or the app_example.py.

Simple Usage

In the simplest case, initialize the Flask-Cors extension with default arguments in order to allow CORS on all routes.

app = Flask(__name__)
cors = CORS(app)

@app.route("/")
def helloWorld():
  return "Hello, cross-origin-world!"

Resource specific CORS

Alternatively, a list of resources and associated settings for CORS can be supplied, selectively enables CORS support on a set of paths on your app.

Note: this resources parameter can also be set in your application’s config.

app = Flask(__name__)
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

@app.route("/api/v1/users")
def list_users():
  return "user example"

Route specific CORS via decorator

This extension also exposes a simple decorator to decorate flask routes with. Simply add @cross_origin() below a call to Flask’s @app.route(..) incanation to accept the default options and allow CORS on a given route.

@app.route("/")
@cross_origin() # allow all origins all methods.
def helloWorld():
  return "Hello, cross-origin-world!"

Using JSON with CORS

When using JSON cross origin, browsers will issue a pre-flight OPTIONS request for POST requests. In order for browsers to allow POST requests with a JSON content type, you must allow the Content-Type header. The simplest way to do this is to simply set the CORS_HEADERS configuration value on your application, e.g:

app.config['CORS_HEADERS'] = 'Content-Type'

Application-wide settings

Alternatively, you can set all parameters except automatic_options in an app’s config object. Setting these at the application level effectively changes the default value for your application, while still allowing you to override it on a per-resource basis, either via the CORS Flask-Extension and regular expressions, or via the @cross_origin() decorator.

The application-wide configuration options are identical to the keyword arguments to cross_origin, creatively prefixed with CORS_

  • CORS_ORIGINS

  • CORS_METHODS

  • CORS_HEADERS

  • CORS_EXPOSE_HEADERS

  • CORS_ALWAYS_SEND

  • CORS_MAX_AGE

  • CORS_SEND_WILDCARD

  • CORS_ALWAYS_SEND

Documentation

For a full list of options, please see the full documentation

Tests

A simple set of tests is included in test/. To run, install nose, and simply invoke nosetests or python setup.py test to exercise the tests.

Contributing

Questions, comments or improvements? Please create an issue on Github, tweet at @wcdolphin or send me an email.

Credits

This Flask extension is based upon the Decorator for the HTTP Access Control written by Armin Ronacher.

Metadata

Release files for flask-cors 1.7.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flask-cors 1.7.3
File Size Uploaded
Flask-Cors-1.7.3.tar.gz 14.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for flask-cors 1.7.3
File Interpreter ABI Platform
Flask_Cors-1.7.3-py3-none-any.whl Python 3 none any Details
Flask_Cors-1.7.3-py2-none-any.whl Python 2 none any Details

Total release size: 34.8 kB

Release files / Flask-Cors-1.7.3.tar.gz

Download URL Flask-Cors-1.7.3.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
90623c0d752f8d9da296b334dd69f7fe6a4ef973b13814fdf43beca8cbff428e
BLAKE2b-256 checksum
How to use checksums
3d8e26c0f43dfbff2c089f6dc9e31376d1204f377e1c0a63d11da95e19b237ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Flask_Cors-1.7.3-py3-none-any.whl

Download URL Flask_Cors-1.7.3-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63553c26fbee2d5aae1cfaaeffaae420b9d98e44a72637b80f998cc7752306e4
BLAKE2b-256 checksum
How to use checksums
2e6cf7b46161b9fed79b6bf193a4ad42a10bb36331c4005c7bd24aed6b833579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Flask_Cors-1.7.3-py2-none-any.whl

Download URL Flask_Cors-1.7.3-py2-none-any.whl
Size 10.0 kB
Tags Python 2
SHA-256 checksum
How to use checksums
bd0126e49348a784402bff104fa394789a90b9fb2fb817ba2019ce14122a578c
BLAKE2b-256 checksum
How to use checksums
67bc9df606c8d644861ba6f0f778e2a11e22109203f8667c209557ad43396c06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

6.0.5

2 release files

6.0.4

2 release files

6.0.3

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.4

2 release files

3.0.3

3 release files

3.0.2

3 release files

3.0.1

3 release files

3.0.0

3 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.10.3

1 release file

1.10.2

3 release files

1.10.1

3 release files

1.10.0

3 release files

1.9.0

3 release files

1.8.1

3 release files

1.8.0

3 release files

1.7.4

3 release files

This release

1.7.3 This release

3 release files

1.7.2

3 release files

1.7.1

3 release files

1.7.0

3 release files

1.6.1

3 release files

1.6.0

3 release files

1.5.0

1 release file

1.4.0

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page