Sono consapevole che i programmi javascript in esecuzione in un browser sono associati alla politica same-origin che impedisce loro di richiedere servizi da un server che si trova su un dominio diverso. Ciò che ho ricavato è che consente di dire che uno script su www.mysite.com non può richiedere un servizio da www.myothersite.com o anche mysite.com .
Se eseguo il seguente codice da www.mysite.com :
var link = "https://www.myothersite.com/jobs-feed.xml";
$.ajax({
type:"GET",
url: link,
dataType: "xml",
success: function(text){
alert(text);
}
})
Questo errore apparirà nella console:
XMLHttpRequest cannot load
www.myothersite.com/jobs-feed.xml.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'www.mysite.com' is therefore not allowed access.
Ho letto che esiste un certo numero di modi per prevenire questo errore e fare una richiesta di cross domain AJAX con successo.
-
JSONP- Ciò richiede che i dati vengano restituiti in formatoJSON, ma altrimenti consentirà ai programmi JS in esecuzione nei browser di richiedere dati da un altro server in un dominio diverso. Qualcosa che di solito è proibito a causa delsame-origin policy. -
Cross Origin Request- Fa uso diHTTP headersper consentire una richiesta di ajaxcross-domain. Richiede browser e server abilitati per CORs.
Ora ecco la mia domanda, se mi piacerebbe andare con una richiesta di COR e non ho accesso al server per abilitarlo per COR's cosa dovrei fare? Devo contattare l'amministratore del server e chiedere loro di permettermi di connettermi? Non sono molto esperto quando si tratta di reti e server di computer, non è sicuramente il mio punto di forza.
Ma da quello che ho raccolto l'errore di cui sopra è di solito un problema con il server che non consente al dominio richiedente l'accesso ai dati? È corretto?
Se sì, come posso superare questo? idealmente, JSONP sarebbe un'opzione desiderata ma i dati non sono in formato JSON , nel mio caso è XML .
Qualsiasi aiuto sarebbe apprezzato. Ho cercato numerosi link online e ho cercato di capire circa CORs e cross domain ajax requests . Mi hanno sicuramente aiutato a capire cosa sta andando storto, ma non sono sicuro di come potrei fare per abilitare i COR.
Se questa è più una domanda per SO Mi scuso, sto più cercando le opinioni degli altri nella comunità di programmazione.
Grazie per l'aiuto.