2015-09-22 17 views
20

Tôi đang sử dụng dịch vụ tự động tạo và lưu trữ các trang khởi chạy. Trong cơ thể của mã của họ, họ có một cuộc gọi đến jquery:Cách ngăn yêu cầu JS bên ngoài

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

Thật không may, kể từ khi tôi đang ở Trung Quốc, googleapis.com bị chặn và trang phải đợi cho mã này để thời gian chờ trước khi nó sẽ làm cho . Phần này được tạo tự động như là một phần của mẫu và tôi không thể thay đổi nó. Tuy nhiên tôi có thể chèn javascript tùy chỉnh vào đầu và phần thân.

Có cách nào để tôi có thể ngăn chặn mã này đưa ra yêu cầu tới googleapis.com hoặc buộc nó hủy bỏ sau khi nó đã đưa ra yêu cầu không?

-EDIT-

Dưới đây là giới hạn màn hình của tab mạng khi tôi cố tải trang. Như bạn có thể thấy, lệnh gọi tới googleapis.com bị treo trong 1.4 phút cho đến khi hết thời gian, lúc đó kích hoạt DomContentLoaded và toàn bộ trang tải.

enter image description here

+2

Để làm rõ, bạn có thể chèn mã tùy chỉnh vào đầu _above_ thẻ '

7

Xem xét sử dụng một Content Security Policy. Nó sẽ là một trường hợp sử dụng bất thường, nhưng với CSP bạn có thể nói với trình duyệt rằng nó không được phép truy cập googleapis.com trước khi chính phủ của bạn thậm chí có tiếng nói trong vấn đề này. Bằng cách này, trình duyệt thậm chí sẽ không tải nó, và trang sẽ không treo.

+0

cảm ơn bạn đã trả lời! Tôi nghĩ rằng tôi có thể có một chút mơ hồ với từ ngữ của tôi. Tôi đang chỉnh sửa mẫu bị khóa được phân phát cho người khác. Tôi muốn ngăn mẫu này gọi đến cuộc gọi googleapi. Tôi có khả năng chèn javascript tùy chỉnh vào tiêu đề và trong phần nội dung của mẫu. – enfieldacademy

+3

Hmm. Tôi có khuynh hướng nói rằng có một thời gian mà bạn phải vẽ đường. Ngừng cố gắng để làm việc xung quanh các hạn chế áp bức của một mẫu tùy ý, và làm cho công cụ của riêng bạn. Bằng cách đó, mọi hạn chế mà bạn có (chẳng hạn như không có khả năng truy cập vào Google) có thể được giải quyết một cách lành mạnh. Nghiêm túc, hãy xem xét số giờ bạn sẽ chi tiêu (hoặc * đã * chi tiêu!) Về vấn đề này, so với số lượng thời gian bạn có thể tiết kiệm bằng cách tự mình viết mã. Cách giải quyết là một công thức cho chứng đau nửa đầu sau này. –

1

Vâng. Đề nghị của @ Niet có vẻ tốt đẹp. Để thêm vào câu trả lời của mình, dưới đây là cách bạn có thể chặn vẽ của miền googleapi sử dụng CSP:

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

Mã này sẽ chỉ thị cho trình duyệt để chỉ thực hiện kịch bản tên miền riêng của bạn.

1

Nếu bạn có quyền truy cập vào máy chủ web và cửa sổ của máy chủ, bạn có thể thêm mục nhập trong tệp Máy chủ để chuyển hướng địa chỉ google đến ứng dụng web máy chủ cục bộ để tải xuống javascript từ đó? (nếu bạn khớp cấu trúc thư mục của liên kết javascript)

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


ajax.googleapis.com 127.0.0.1 
Các vấn đề liên quan