A Flask extension adding a decorator for CORS support
Flask-CORS is a simple extension to Flask allowing you to support cross origin resource sharing (CORS) using a simple decorator.
Install the extension with using pip, or easy_install.
$ pip install flask-cors
This extension 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 Cross Origin
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.
@app.route("/user/create", methods=['GET','POST']) @cross_origin(headers=['Content-Type']) # Send Access-Control-Allow-Headers def cross_origin_json_post(): return jsonify(success=True)
Alternatively, setting your application’s CORS_ORIGINS configuration property will
app.config['CORS_ORIGINS'] = ['Foo', 'Bar'] @app.route("/") @cross_origin() # will return CORS headers for origins 'Foo' and 'Bar' def helloWorld(): return "Hello, cross-origin-world!"
For a full list of options, please see the full documentation
A simple set of tests is included in test.py. To run, install nose, and simply invoke nosetests or run python test.py or python setup.py test to exercise the tests.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.