API:Cross-site requests/es

Si un script de usuario o un accesorio necesita hacer una llamada de la API contra otro sitio de MediaWiki (por ejemplo, un script en Wikipedia en español tiene que comprobar información de imágenes de Commons), tiene que usar JSONP o CORS.

Uso de JSONP
El API $Json acepta un parámetro de, cuyo valor es una función de JavaScript en la que el JSON resultado será incluido. Esto se puede usar para llamar a la API en un sitio remoto añadiendo etiquetas al documento.

Uso de CORS
El API de MediaWiki requiere que el  sea suministrado como parámetro de cadena de consulta, siendo el valor el sitio desde el que se origina la solicitud, que coincide con el encabezado Origen requerido por el protocolo CORS. Ten en cuenta que el parámetro debe incluirse en cualquier petición de preverificación, y por tanto debe incluirse en la parte de la cadena de consulta de la URI de la petición, incluso para peticiones POST.

Cuando el parámetro  es proporcionado y la petición no devuelve una respuesta CORS exitosa, MediaWiki≥1.30 devolverá un $encabezado de rechazo con una breve razón del error, p. Ej. en caso de origen no coincidente o encabezados no compatibles en un encabezado de petición.

Peticiones CORS no autenticadas
Las peticiones CORS no autentificadas se pueden realizar desde cualquier origen. Para ello hay que fijar el parámetro de petición «origin» a «*». En este caso, MediaWiki incluirá la cabecera  en la respuesta y procesará la petición como si el usuario no tuviera una sesión activa (en caso de que por algún motivo se enviaran las credenciales igualmente).

Authenticated CORS Requests
Para hacer una petición CORS autentificada, la variable  del wiki remoto debe estar configurada de tal forma que admita el sitio de origen. Si el origen del CORS es aceptado, MediaWiki incluirá la cabecera  en la respuesta para que se puedan enviar cookies de autentificación.

Véase Manual:CORS para las instrucciones para manejar peticiones CORS en JavaScript.

Additional notes

 * Detailed differences between JSONP and CORS are available at CORS vs JSONP.