| 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) |