Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Add support of CORS protocol

Abierto
#644 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
30/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python

Línea de trabajo

El issue demuestra un wrapper de aplicación WSGI alrededor de Service.call y gestiona las solicitudes HTTP OPTIONS con cabeceras CORS. Empieza trazando cómo se expone el servicio a través del punto de entrada WSGI y determina dónde debe ubicarse el manejo de solicitudes cross-origin. La tarea estará completa cuando las solicitudes cross-origin desde el navegador reciban las respuestas CORS requeridas sin que cada deployment tenga que añadir su propio wrapper.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

  • git clone

  • Debian

  • PyPI

  • zip/tar.gz

  • other (please specify):
    Any

  • web server

  • Apache/mod_wsgi

  • CGI

  • other (please specify):
    Any

Steps to Reproduce

Additional Information

Lenguaje dominante
Python
Estrellas
186
Forks
116
Merge medio
11 d 20 h
PR fusionados (30 d)
1

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de geopython/pywps

Todos los issues de geopython/pywps

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.