Skip to content

Instantly share code, notes, and snippets.

@osharim
Forked from robhudson/gist:3848832
Created July 30, 2014 23:00
Show Gist options
  • Save osharim/2e6e77939faca66ca33f to your computer and use it in GitHub Desktop.
Save osharim/2e6e77939faca66ca33f to your computer and use it in GitHub Desktop.
class CORSResource(object):
"""
Adds CORS headers to resources that subclass this.
"""
def create_response(self, *args, **kwargs):
response = super(CORSResource, self).create_response(*args, **kwargs)
response['Access-Control-Allow-Origin'] = '*'
response['Access-Control-Allow-Headers'] = 'Content-Type'
return response
def method_check(self, request, allowed=None):
if allowed is None:
allowed = []
request_method = request.method.lower()
allows = ','.join(map(str.upper, allowed))
if request_method == 'options':
response = HttpResponse(allows)
response['Access-Control-Allow-Origin'] = '*'
response['Access-Control-Allow-Headers'] = 'Content-Type'
response['Allow'] = allows
raise ImmediateHttpResponse(response=response)
if not request_method in allowed:
response = http.HttpMethodNotAllowed(allows)
response['Allow'] = allows
raise ImmediateHttpResponse(response=response)
return request_method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment