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 headers
per 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.