Source code

Revision control

Copy as Markdown

Other Tools

from wptserve.utils import isomorphic_encode
def main(request, response):
response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"origin"))
response.headers.set(b"Access-Control-Expose-Headers", b"X-Request-Method")
if request.method == u'OPTIONS':
response.headers.set(b"Access-Control-Allow-Methods", b"GET, CHICKEN, HEAD, POST, PUT")
if b'headers' in request.GET:
response.headers.set(b"Access-Control-Allow-Headers", request.GET.first(b'headers'))
response.headers.set(b"X-Request-Method", isomorphic_encode(request.method))
response.headers.set(b"X-A-C-Request-Method", request.headers.get(b"Access-Control-Request-Method", b""))
#This should reasonably work for most response codes.
try:
code = int(request.GET.first(b"code", 200))
except ValueError:
code = 200
text = request.GET.first(b"text", b"OMG")
if request.method == u"OPTIONS" and b"preflight" in request.GET:
try:
code = int(request.GET.first(b'preflight'))
except KeyError:
pass
status = code, text
if b"type" in request.GET:
response.headers.set(b"Content-Type", request.GET.first(b'type'))
body = request.GET.first(b'content', b"")
return status, [], body