XMLHttpRequest Eccezione 101: Un errore di rete in sincrono richieste

Così sto costruendo un plugin per jQuery per scambiare normale grafica per retina quando l’utente si trova su un alto-pixel densità dispositivo. Parte di questo swap necessario verificare se la retina versione del file presente in un determinato url giro per il web. Ecco come si controlla:

function urlExists(url) {
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
};

Ma quando si tenta di controllare un file su un server diverso di quello attuale, non con questo errore in console:

XMLHttpRequest Exception 101: A network error occurred in synchronous requests.

Come posso permettere domini XML richieste https in modo che questo funziona su qualsiasi sito che carica il plugin?

Inoltre, mi piacerebbe eventualmente convertire questo JS, farlo senza jQuery sarebbe ottimale.

Ecco un JSFiddle: http://jsfiddle.net/JacksonGariety/7YYgP/1/
(NOTA: ho commentato il controllo per la retina dispositivi parte in modo da poter testare roba)

Da quello che sembra, però, non sei l’esecuzione di qualsiasi jQuery. Almeno con il codice da te fornito.
Se si controlla il jdFiddle, c’è un po ‘ di jQuery mescolato qui e là.

OriginaleL’autore alt | 2012-06-21

One Reply
  1. 0

    Permettendo domini richieste AJAX dipende dalla server di configurazione, non client (come meglio so). Che significa che non c’è alcun modo per garantire un successo /ammessi domini richiesta AJAX solo il caricamento jQuery /JS plugin da solo.

    Se c’è, però, caspita, mi piacerebbe sapere su di esso.

    Questo plugin sembra farlo: retinajs.com
    Qui: jsfiddle.net
    Di ricerca”.send(
    Io non sono molto di un CoffeeScript persona, ma da quello che posso vedere, questo è sicuramente l’invio di un XHR, ma è limitata al documento corrente dominio? È la nave di salto, se rileva che l’immagine è in un server esterno (linea 18-26).
    Vero, XS AJAX restrizioni sono principalmente sul client; ma se si ha la creazione di un plugin, non si può pretendere di fornire agli utenti del web di ehi, assicurarsi che hai XS abilitato sul tuo browser prima di navigare su questo sito! Basta andare in Strumenti > Impostazioni … bla. Blocco che, il solo (fattibile?) modi per consentire XS (anche pseudo forme attraverso JSONP o CORS, sia che si basano su una sorta di pre-esistente configurazione server / preparazione.

    OriginaleL’autore Richard Neil Ilagan

Lascia un commento