Domanda

Sto lavorando su una rete intranet con diversi sottodomini. Ho il controllo su ciascun sottodominio, quindi la sicurezza delle richieste tra siti non è un problema. Ho script PHP con risposte JSON che vorrei chiamare da più sottodomini senza duplicazione. Per le richieste GET, posso farlo con AJAX e JSONP, ma ciò non funziona con le richieste POST. Vedo alcune alternative, nessuna delle quali sembra molto buona:

  • POST su una copia del sottodominio locale con risposta minima, quindi OTTIENI la risposta completa dalla posizione centrale con JSONP
  • Sia POST che GET in una copia sul sottodominio locale con JSON
  • Utilizza mod_rewrite per utilizzare gli URL locali con uno script centrale sul back-end con JSON
  • Utilizza i collegamenti simbolici per utilizzare gli URL locali con uno script centrale sul back-end con JSON

Mi sto perdendo qualcosa di più semplice? Cosa faresti qui?

È stato utile?

Soluzione

guarda questo https://developer.mozilla.org/En/HTTP_access_control pagina. Tutto ciò di cui hai bisogno: aggiungi l'intestazione a tutti gli script che accettano la richiesta di post. Esempio:

Altri suggerimenti

Potresti scrivere un semplice riflettore sul lato server. Aggiungi uno script a ciascun dominio che passa semplicemente la tua richiesta Ajax al dominio appropriato. Questo script può essere molto semplice (1 o 2 righe di codice), evita i problemi di scripting tra siti e significa che non è necessario duplicare la complicata logica aziendale negli script esistenti.

Causerà un lavoro extra per il tuo server, ma potrebbe non essere un problema per te.

Il codice di esempio più vicino che posso trovare sui siti che gestisco è il seguente. Qui dovevamo essere in grado di utilizzare l'API Chart di Google su una connessione HTTPS (che non supporta ancora). La soluzione era aggiungere il seguente script che ha passato le chiamate su ...

<?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?'.

Potresti scrivere un semplice riflettore sul lato server. Aggiungi uno script a ciascun dominio che passa semplicemente la tua richiesta Ajax al dominio appropriato. Questo script può essere molto semplice (1 o 2 righe di codice), evita i problemi di scripting tra siti e significa che non è necessario duplicare la complicata logica aziendale negli script esistenti.

Causerà un lavoro extra per il tuo server, ma potrebbe non essere un problema per te.

Il codice di esempio più vicino che posso trovare sui siti che gestisco è il seguente. Qui dovevamo essere in grado di utilizzare l'API Chart di Google su una connessione HTTPS (che non supporta ancora). La soluzione era aggiungere il seguente script che ha passato le chiamate su ...

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

Uso l'approccio REST in questi casi. Cerca su Google ulteriori informazioni su REST.

Se sono tutti sottodomini dello stesso dominio, puoi semplicemente aggiungere questo codice a ogni pagina:

document.domain = 'domain.com';

Quindi, usa semplicemente xmlHttpRequest.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top