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
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:
[1] https://fetch.spec.whatwg.org/#cors-protocol
Environment
operating system: Any
Python version: Any
PyWPS version: Any
source/distribution
web server
Steps to Reproduce
Additional Information