2010-04-21 14 views
5

Ho un server sulla nostra intranet aziendale che esegue JBoss. Voglio inviare chiamate API a questo server dalla mia macchina, anche sulla intranet, e ottenere le risposte XML risultanti usando JQuery.Come si applica la stessa politica di origine agli indirizzi IP

Ho letto la voce su Wikipedia ma sono confuso come ciò si applica alla mia situazione, dal momento che le nostre macchine hanno solo indirizzi IP, non nomi di dominio.

ho

  • URL del server: 10.2.200.3:8001/serviceroot/service
  • indirizzo IP del client: 10.2.201.217

Le mie domande sono:

  1. Per quanto mi riguarda d questi sono domini diversi, giusto? Quindi devo usare un proxy per inviare chiamate JQuery.ajax al server
  2. Se voglio evitare di fare (2), posso installare Apache sul server e server la pagina con il modulo di codice JS lì? Ma poi il JS sarà dal 10.2.200.3 e il server è al 10.2.200.3:8001. Non sono considerati domini diversi in base alla politica?

Grazie!

+0

Ho passato circa un'ora a cercare di capirlo l'anno scorso e non credo di aver mai avuto una buona risposta; Non ne avevo bisogno, quindi ho rinunciato: I – Pointy

+0

A punta, ti capisco appieno! Mi sto tirando i capelli per risolvere questo semplice problema di JQuery per due giorni. – recipriversexclusion

risposta

2
  1. Sì.

  2. Sì, porte diverse indicano origini diverse. Questo è qualcosa che la maggior parte dei browser ha fatto in JS per un po ', ma è esplicitamente descritto nel HTML5 draft, a cui fa riferimento lo XMLHttpRequest draft.

Se A e B hanno componenti di porta non sono identici, restituire false.

+0

Grazie Bobince! Un altro Q: Quale suggeriresti, dovrei avere il mio server JBoss anche servire le pagine con JS al 10.2.200.3:8001 o dovrei andare con la soluzione di server proxy comunemente usata. – recipriversexclusion

+0

Dipende dal modo in cui i tuoi extra web sono al servizio, penso, se vuoi che facciano effettivamente parte dello stesso progetto. Ad ogni modo, sarei riluttante a eseguire script AJAX di sviluppo su un server di produzione, se è quello che è. – bobince

2

Se la porta o l'indirizzo sono diversi, si tratta di domini diversi. Se hai bisogno di accedere alle informazioni da quello che è effettivamente un altro server hai davvero due opzioni. Uno è scrivere una sorta di proxy inverso per passare le richieste dallo stesso server di origine al server secondario.

In alternativa, se si ha il controllo del target secondario e non vi è alcun rischio per la sicurezza nell'accesso diretto, è possibile prendere in considerazione la possibilità di regolare il server secondario per emettere le risposte JSON-P.

Problemi correlati