Search code examples
pythondjangocorsdjango-rest-frameworkmiddleware

How can I enable CORS on Django REST Framework


How can I enable CORS on my Django REST Framework? the reference doesn't help much, it says that I can do by a middleware, but how can I do that?


Solution

  • The link you referenced in your question recommends using django-cors-headers, whose documentation says to install the library

    python -m pip install django-cors-headers
    

    and then add it to your installed apps:

    INSTALLED_APPS = (
        ...
        'corsheaders',
        ...
    )
    

    You will also need to add a middleware class to listen in on responses:

    MIDDLEWARE = [
        ...,
        'corsheaders.middleware.CorsMiddleware',
        'django.middleware.common.CommonMiddleware',
        ...,
    ]
    

    and specify domains for CORS, e.g.:

    CORS_ALLOWED_ORIGINS = [
        'http://localhost:3030',
    ]
    

    Please browse the configuration section of its documentation, paying particular attention to the various CORS_ORIGIN_ settings. You'll need to set some of those based on your needs.