2015-09-22 10 views
20

Używam usługi, która automatycznie tworzy i obsługuje strony uruchamiania. W ciele swojego kodu, mają one wezwanie do jQuery:Jak zapobiec zewnętrznemu żądaniu JS

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

Niestety, ponieważ jestem w Chinach, googleapis.com jest zablokowany, a strona musi czekać na ten kod, aby limit czasu, zanim zostanie on odpłaca . Ta część jest automatycznie generowana jako część szablonu i nie można jej zmienić. Jednak mogę wstawić niestandardowy javascript w głowie i ciele.

Czy mogę zapobiec temu, że ten kod nie spowoduje wysłania żądania do witryny googleapis.com lub zmusić go do przerwania po złożeniu wniosku?

-EDIT-

Oto czapka ekran na karcie sieciowej, gdy próbuję załadować stronę. Jak widać, połączenie z witryną googleapis.com zawiesza się na 1,4 minuty, aż do przekroczenia limitu czasu, w którym to momencie następuje wywołanie DomContentLoaded i załadowanie całej strony.

enter image description here

+2

na celu wyjaśnienie, czy jesteś w stanie włożyć niestandardowego kodu w głowie _above_ tym ''

7

Rozważ używanie Content Security Policy. Byłby to nietypowy przypadek użycia, ale dzięki CSP możesz powiedzieć przeglądarce, że nie ma dostępu do witryny googleapis.com, zanim twój rząd nie wypowie się w tej sprawie. W ten sposób przeglądarka nawet nie spróbuje go załadować, a strona nie zawiesi się.

+0

dzięki za odpowiedź! Myślę, że mogłem być nieco niejasny z mojego sformułowania. Edytuję zablokowany szablon, który jest udostępniany innym osobom. Chciałbym uniemożliwić temu szablonowi wywoływanie wywołania googleapi. Mam możliwość wstawienia niestandardowego javascript w nagłówku i treści szablonu. – enfieldacademy

+3

Hmm. Jestem skłonny powiedzieć, że nadchodzi czas, w którym musisz narysować linię. Przestań próbować obejść uciążliwe ograniczenia arbitralnego szablonu i twórz własne rzeczy. W ten sposób wszelkie ograniczenia, które masz (np. Niemożność uzyskania dostępu do Google), można rozwiązać w rozsądny sposób. Poważnie, zastanów się, ile godzin masz zamiar wydać (lub * wydałeś *!) Na ten temat, w porównaniu do czasu, który możesz zaoszczędzić, samemu kodując. Obejścia są receptą na migrenę później. –

1

Tak. Sugestia @ Niet wydaje się miła. Aby dodać do swojej odpowiedzi, oto jak można blokować renderowanie domenie googleapi użyciu CSP:

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

Ten kod będzie instruować przeglądarkę tylko wykonywanie skryptów własną domenę za.

1

Jeśli masz dostęp do serwera internetowego i jego okien, możesz dodać wpis w pliku Hosts, aby przekierować adres google do aplikacji internetowej serwera lokalnego, aby pobrać tam javascript? (Jeśli dopasować strukturę folderów javascript link)

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


ajax.googleapis.com 127.0.0.1 
Powiązane problemy