Pregunta

Estoy trabajando en una intranet con varios subdominios. Tengo control sobre cada subdominio, por lo que la seguridad de las solicitudes entre sitios no es una preocupación. Tengo scripts PHP con respuestas JSON a los que me gustaría llamar desde múltiples subdominios sin duplicación. Para las solicitudes GET, puedo hacer esto con AJAX y JSONP, pero eso no funciona con las solicitudes POST. Algunas alternativas que veo, ninguna de las cuales parece muy buena:

  • POST a una copia en el subdominio local con una respuesta mínima, luego obtenga la respuesta completa desde la ubicación central con JSONP
  • POST y GET a una copia en un subdominio local con JSON
  • Utilice mod_rewrite para usar URL locales con un script central en el back-end con JSON
  • Use enlaces simbólicos para usar URL locales con un script central en el back-end con JSON

¿Me estoy perdiendo algo más simple? ¿Qué harías aquí?

¿Fue útil?

Solución

solo mire esto https://developer.mozilla.org/En/HTTP_access_control página. Todo lo que necesita: agregue un encabezado a todos los scripts que acepten la solicitud posterior. Ejemplo:

Otros consejos

Podrías escribir un reflector simple en el lado del servidor. Agregue un script a cada dominio que simplemente pase su solicitud de ajax al dominio apropiado. Este script puede ser muy simple (1 o 2 líneas de código), evita los problemas de scripts entre sitios y significa que no necesita duplicar la lógica de negocios complicada en sus scripts existentes.

Causará trabajo adicional para su servidor, pero puede que no sea un problema para usted.

El código de ejemplo más cercano que puedo encontrar en los sitios que administro es el siguiente. Aquí necesitábamos poder utilizar la API de gráficos de Googles en una conexión HTTPS (que aún no admite). La solución fue agregar el siguiente script que pasó las llamadas en ...

<?php
// Set header so our output looks like a PNG
header("Content-Type: image/png");

// Reflect the image from googles chart API
echo file_get_contents('http://chart.apis.google.com/chart?'.

Podrías escribir un reflector simple en el lado del servidor. Agregue un script a cada dominio que simplemente pase su solicitud de ajax al dominio apropiado. Este script puede ser muy simple (1 o 2 líneas de código), evita los problemas de scripts entre sitios y significa que no necesita duplicar la lógica de negocios complicada en sus scripts existentes.

Causará trabajo adicional para su servidor, pero puede que no sea un problema para usted.

El código de ejemplo más cercano que puedo encontrar en los sitios que administro es el siguiente. Aquí necesitábamos poder utilizar la API de gráficos de Googles en una conexión HTTPS (que aún no admite). La solución fue agregar el siguiente script que pasó las llamadas en ...

<*>SERVER['QUERY_STRING']); ?>

Yo uso el enfoque REST en tales casos. Busque en google para obtener más información sobre REST.

Si todos son subdominios del mismo dominio, puedes agregar este código a cada página:

document.domain = 'domain.com';

Luego, simplemente usa xmlHttpRequest simple

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top