2015-09-22 14 views
20

Sto utilizzando un servizio che crea automaticamente e ospita le pagine di avvio. Nel corpo del loro codice, hanno una chiamata a jquery:Come prevenire una richiesta JS esterna

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js?cache=2015-09-22-09"> 

Purtroppo, dato che sono in Cina, googleapis.com è bloccato e la pagina deve aspettare per questo codice di timeout prima che renderà . Questa parte viene generata automaticamente come parte del modello e non posso cambiarla. Comunque posso inserire javascript personalizzati nella testa e nel corpo.

Esistono modi per impedire a questo codice di inoltrare la richiesta a googleapis.com o di forzare l'interruzione dopo aver già effettuato la richiesta?

operativa -Editazione-

Ecco un tappo schermo della scheda di rete quando provo a caricare la pagina. Come puoi vedere, la chiamata a googleapis.com si blocca per 1,4 minuti finché non scade, a quel punto i trigger di DomContentLoaded e l'intera pagina viene caricata.

enter image description here

+2

Per chiarire, si è in grado di inserire il codice personalizzato in testa _above_ questo tag ''

7

Considerare l'utilizzo di un Content Security Policy. Sarebbe un caso d'uso insolito, ma con il CSP puoi dire al browser che non è consentito accedere a googleapis.com prima che il tuo governo abbia voce in capitolo. In questo modo, il browser non tenterà nemmeno di caricarlo e la pagina non si bloccherà.

+0

grazie per la risposta! Penso di essere stato un po 'vago con le mie parole. Sto modificando un modello bloccato che viene offerto ad altre persone. Vorrei impedire a questo modello di chiamare la chiamata googleapi. Ho la possibilità di inserire javascript personalizzati nell'intestazione e nel corpo del modello. – enfieldacademy

+3

Hmm. Sono propenso a dire che arriva un momento in cui devi tracciare la linea. Smetti di cercare di aggirare le restrizioni opprimenti di un modello arbitrario e crea le tue cose. In questo modo, qualsiasi restrizione che hai (come l'impossibilità di accedere a Google) può essere risolta in modo sano. Seriamente, considera quante ore hai intenzione di spendere (o * hai * speso!) Su questo problema, rispetto al tempo che potresti risparmiare semplicemente codificandolo da solo. I workaround sono una ricetta per l'emicrania in seguito. –

1

Sì. Il suggerimento di @ Niet sembra carino. Per aggiungere alla sua risposta, ecco come è possibile bloccare rendering di dominio googleapi usando CSP:

Content-Security-Policy: script-src 'self';

Questo codice istruire il browser per eseguire solo gli script del proprio dominio.

1

Se si ha accesso al server Web e alle sue finestre, è possibile aggiungere una voce nel file Hosts per reindirizzare l'indirizzo google all'applicazione Web del server locale per scaricare il javascript da lì? (Se si corrisponde la struttura delle cartelle del collegamento javascript)

c:\windows\system32\drivers\etc\hosts 


ajax.googleapis.com 127.0.0.1 
Problemi correlati