Vraag JavaScript-toegang van bovenliggend domein tot subdomein?


Ik heb die instelling gelezen document.domain = "example.com" laat me toegang krijgen tot het bovenliggende domein vanuit een subdomein.

Zal hetzelfde andersom werken?

Laten we zeggen dat mijn hoofdsite onderloopt http://example.com. Alle API-functies die ik wil openen via AJAX (GET & POST) worden gehost http: //api.example.com.

Krijg ik toegang api.example.com van example.com?

BEWERK: Kijken naar document.domain nogmaals, ik denk niet dat dit het probleem zal oplossen. Het resultaat van oproepen naar api.example.com


16
2018-06-08 11:19


oorsprong


antwoorden:


U moet document.domain instellen op BEIDE pagina's

U kunt ook CORS-headers instellen op uw server:

http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/

Een snel overzicht van CORS

Firefox 3.5 en Safari 4 implementeren het   CORS-specificatie, gebruikmakend van    XMLHttpRequest als een "API-container"   die de. verzendt en ontvangt   geschikte headers namens de   webontwikkelaar, dus toestaan   aanvragen voor meerdere locaties. IE8 implementeert   onderdeel van de CORS-specificatie, gebruikmakend van    XDomainRequest als een vergelijkbare "API   container "voor CORS, maakt eenvoudig   cross-site GET en POST-verzoeken.   Met name deze browsers verzenden de   ORIGIN-header, die de   schema (http: // of https: //) en de   domein van de pagina die de   cross-site aanvraag. Serverontwikkelaars   moet ervoor zorgen dat ze de   rechtse headers terug, met name de   Access-Control-Allow-Origin header voor   de betreffende ORIGIN (of "*" voor   alle domeinen, als de bron dat is   openbaar) .

De CORS-standaard werkt door nieuw toe te voegen   HTTP-headers waarmee servers kunnen   hulpbronnen dienen voor toegestane oorsprong   domeinen. Browsers ondersteunen deze   headers en dwingen de beperkingen af   zij vestigen. Bovendien voor HTTP   vraag methoden aan die kunnen veroorzaken   bijwerkingen van gebruikersgegevens (in   met name voor andere HTTP-methoden   dan GET, of voor POST-gebruik met   bepaalde MIME-typen), de specificatie   machtigt dat browsers het "preflight"   verzoek, waarbij ondersteunde methoden worden gevraagd   van de server met een HTTP OPTIES   verzoek header, en vervolgens op   "Goedkeuring" van de server, verzenden   het daadwerkelijke verzoek met het werkelijke   HTTP-verzoekmethode. Servers kunnen ook   informeer klanten of "inloggegevens"   (inclusief cookies en HTTP   Verificatiegegevens) moeten worden verzonden   met verzoeken.


7
2018-06-08 11:21