30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
def main(request, response):
|
|
# Headers need to be set before `response.writer` writes out the response.
|
|
tao = request.GET.get(b'timing_allow_origin')
|
|
if tao:
|
|
response.headers.set(b"Timing-Allow-Origin", tao)
|
|
|
|
if b'origin' in request.headers:
|
|
origin = request.headers[b'origin']
|
|
response.headers.set(b'Access-Control-Allow-Origin', origin)
|
|
|
|
content = request.GET.first(b'content')
|
|
response.headers.set(b'Cache-Control', b'max-age=60')
|
|
response.headers.set(b'ETag', b'assdfsdfe')
|
|
|
|
# Handle CORS-preflights of non-simple requests.
|
|
if request.method == 'OPTIONS':
|
|
response.status = 204
|
|
requested_method = request.headers.get(b"Access-Control-Request-Method")
|
|
if requested_method:
|
|
response.headers.set(b"Access-Control-Allow-Methods", requested_method)
|
|
requested_headers = request.headers.get(b"Access-Control-Request-Headers")
|
|
if requested_headers:
|
|
response.headers.set(b"Access-Control-Allow-Headers", requested_headers)
|
|
else:
|
|
if 'Cache-Control' in request.headers:
|
|
response.status = (304, b'NotModified')
|
|
else:
|
|
response.status = (200, b'OK')
|
|
response.write_status_headers()
|
|
response.writer.write(content)
|