Add support of CORS protocol
- Dominant language
- Python
- Stars
- 186
- Forks
- 117
- Avg merge
- 11d 20h
- Merged PRs (30d)
- 1
Description
# Description
The CORS protocol [1] is needed to support request from web browser from cross-origin fetch, i.e. fetch from different domain name. As instance a javascript from domain1.com that want to fetch a WPS from domain2.com. The protocol need to answer to some HTTP OPTIONS requests.
In my case I override the wsgi application when OPTIONS request is perfomed to allow any cross-origin request as follow:
```
from werkzeug.wrappers import Request, Response
from pywps.app.Service import Service
_servive = Service(processes, ['PWD/pywps.cfg'])
@Request.application
def application(http_request):
# Allow request from any sources to avoid cross-origin issue.
if http_request.method == 'OPTIONS':
return Response(headers={
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "origin, content-type, x-requested-with",
"Access-Control-Allow-Methods": "PUT, GET, POST, DELETE, OPTIONS"
})
# Default case
r = _servive.call(http_request)
return r
```
[1] https://fetch.spec.whatwg.org/#cors-protocol
# Environment
- operating system:
Any
- Python version:
Any
- PyWPS version:
Any
- source/distribution
- [x] git clone
- [x] Debian
- [x] PyPI
- [x] zip/tar.gz
- [x] other (please specify):
Any
- web server
- [x] Apache/mod_wsgi
- [x] CGI
- [x] other (please specify):
Any
# Steps to Reproduce
# Additional Information
Contributor guide
Assessment
This issue has not been assessed yet.