71 lines
3.2 KiB
Diff
71 lines
3.2 KiB
Diff
diff -ru web2/http_headers.py web2-CardDavMATE/http_headers.py
|
|
--- web2/http_headers.py 2011-10-31 00:34:14.000000000 +0100
|
|
+++ web2-CardDavMATE/http_headers.py 2011-10-31 00:31:07.000000000 +0100
|
|
@@ -1531,7 +1531,14 @@
|
|
'Set-Cookie2':(tokenize, parseSetCookie2),
|
|
'Vary':(tokenize, filterTokens),
|
|
'WWW-Authenticate': (lambda h: tokenize(h, foldCase=False),
|
|
- parseWWWAuthenticate,)
|
|
+ parseWWWAuthenticate,),
|
|
+
|
|
+ # begin CardDavMATE section
|
|
+ 'Access-Control-Allow-Origin':(last,),
|
|
+ 'Access-Control-Allow-Methods':(last,),
|
|
+ 'Access-Control-Allow-Headers':(last,),
|
|
+ 'Access-Control-Allow-Credentials':(last,),
|
|
+ 'Access-Control-Expose-Headers':(last,)
|
|
+ # end CardDavMATE section
|
|
}
|
|
|
|
generator_response_headers = {
|
|
@@ -1545,7 +1552,14 @@
|
|
'Set-Cookie':(generateSetCookie,),
|
|
'Set-Cookie2':(generateSetCookie2,),
|
|
'Vary':(generateList, singleHeader),
|
|
- 'WWW-Authenticate':(generateWWWAuthenticate,)
|
|
+ 'WWW-Authenticate':(generateWWWAuthenticate,),
|
|
+
|
|
+ # begin CardDavMATE section
|
|
+ 'Access-Control-Allow-Origin':(str, singleHeader),
|
|
+ 'Access-Control-Allow-Methods':(str, singleHeader),
|
|
+ 'Access-Control-Allow-Headers':(str, singleHeader),
|
|
+ 'Access-Control-Allow-Credentials':(str, singleHeader),
|
|
+ 'Access-Control-Expose-Headers':(str, singleHeader)
|
|
+ # end CardDavMATE section
|
|
}
|
|
|
|
parser_entity_headers = {
|
|
diff -ru web2/server.py web2-CardDavMATE/server.py
|
|
--- web2/server.py 2011-10-31 00:34:21.000000000 +0100
|
|
+++ web2-CardDavMATE/server.py 2011-10-31 00:31:07.000000000 +0100
|
|
@@ -58,6 +58,18 @@
|
|
response.headers.setHeader('server', VERSION)
|
|
if not response.headers.hasHeader('date'):
|
|
response.headers.setHeader('date', time.time())
|
|
+
|
|
+ # begin CardDavMATE section
|
|
+ if not response.headers.hasHeader('Access-Control-Allow-Origin'):
|
|
+ response.headers.setHeader('Access-Control-Allow-Origin', '*')
|
|
+ if not response.headers.hasHeader('Access-Control-Allow-Methods'):
|
|
+ response.headers.setHeader('Access-Control-Allow-Methods','GET,POST,OPTIONS,PROPFIND,PROPPATCH,REPORT,PUT,MOVE,DELETE,LOCK,UNLOCK')
|
|
+ if not response.headers.hasHeader('Access-Control-Allow-Headers'):
|
|
+ response.headers.setHeader('Access-Control-Allow-Headers','User-Agent,Authorization,Content-type,Depth,If-match,If-None-Match,Lock-Token,Timeout,Destination,Overwrite,Prefer,X-client,X-Requested-With')
|
|
+ if not response.headers.hasHeader('Access-Control-Allow-Credentials'):
|
|
+ response.headers.setHeader('Access-Control-Allow-Credentials','true')
|
|
+ if not response.headers.hasHeader('Access-Control-Expose-Headers'):
|
|
+ response.headers.setHeader('Access-Control-Expose-Headers','Etag,Preference-Applied')
|
|
+ # end CardDavMATE section
|
|
+
|
|
return response
|
|
defaultHeadersFilter.handleErrors = True
|
|
|
|
@@ -354,7 +366,7 @@
|
|
example. This would also be the place to do any CONNECT
|
|
processing."""
|
|
|
|
- if self.method == "OPTIONS" and self.uri == "*":
|
|
+ if self.method == "OPTIONS":
|
|
response = http.Response(responsecode.OK)
|
|
response.headers.setHeader('allow', ('GET', 'HEAD', 'OPTIONS', 'TRACE'))
|
|
return response
|