access-control-preflight-request-header-sorted.py (800B)
1 def main(request, response): 2 response.headers.set(b'Cache-Control', b'no-store') 3 response.headers.set(b'Access-Control-Allow-Origin', 4 request.headers.get(b'origin')) 5 6 headers = b'x-custom-s,x-custom-test,x-custom-u,x-custom-ua,x-custom-v' 7 if request.method == u'OPTIONS': 8 response.headers.set(b'Access-Control-Max-Age', b'0') 9 response.headers.set(b'Access-Control-Allow-Headers', headers) 10 # Access-Control-Request-Headers should be sorted. 11 if headers != request.headers.get(b'Access-Control-Request-Headers'): 12 response.status = 400 13 else: 14 if request.headers.get(b'x-custom-s'): 15 response.content = b'PASS' 16 else: 17 response.status = 400 18 response.content = b'FAIL'