Bladeren bron

air: sending response headers as list of tuples
to allow multiple 'set-cookie' entries

Rodja Trappe 1 jaar geleden
bovenliggende
commit
19b5497697
1 gewijzigde bestanden met toevoegingen van 4 en 3 verwijderingen
  1. 4 3
      nicegui/air.py

+ 4 - 3
nicegui/air.py

@@ -43,10 +43,11 @@ class Air:
             if match:
                 new_js_object = match.group(1).decode().rstrip('}') + ", 'fly_instance_id' : '" + instance_id + "'}"
                 content = content.replace(match.group(0), f'const query = {new_js_object}'.encode())
-            response_headers = dict(response.headers)
-            response_headers['content-encoding'] = 'gzip'
+            response.headers.update({'content-encoding': 'gzip'})
             compressed = gzip.compress(content)
-            response_headers['content-length'] = str(len(compressed))
+            response.headers.update({'content-length': str(len(compressed))})
+            # NOTE the same header can occur multiple times so we send them as list of tuples
+            response_headers = [(k, v) for k, v in response.headers.items()]
             return {
                 'status_code': response.status_code,
                 'headers': response_headers,