Это может быть глупый вопрос, но я буду рисковать.Как проверить подлинность скрипта до его включения
На моем сайте, я включаю следующий файл сценария:
<script src="http://connect.facebook.net/en_US/all.js"></script>
Обычно, это будет работать нормально. Однако, когда я работаю, у нас есть брандмауэр, который блокирует любой трафик для доменов facebook.com или facebook.net, поскольку, очевидно, ни один сотрудник не обладает достаточным самоконтролем, чтобы не позволить себе играть в Фармвилл целый день, а не работать.
Таким образом, при загрузке сценария на самом деле получается куча HTML, в котором говорится, что сайт заблокирован. Поскольку это HTML и недействительный Javascript, браузер вызывает ошибки скрипта. Заметьте, я до сих пор получаю HTTP 200, поэтому я не могу поймать ошибки таким образом.
Я согласен с тем, что это край, потому что только небольшой процент пользователей будет пытаться получить доступ к моему сайту из-за брандмауэра, который блокирует трафик Facebook, но мне все еще интересно, есть ли что-то относительно легко я могу сделать тест, чтобы убедиться, что ссылка возвращает действительный Javascript, или, возможно, окружает загрузку скрипта в гигантском блоке try/catch и грамотно обрабатывает ошибки. Любые идеи были бы высоко оценены!
UPDATE:
Вот HTTP-заголовки из страницы ошибок брандмауэра. Возможно, я могу посмотреть заголовок «content-type», который, как я полагаю, будет text/javascript, если контент был действительным.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Content-Length: 4774
Не могли бы вы получить скрипт с запросом AJAX «GET» и убедиться, что он не начинается с разметки HTML? – Pointy
или, возможно, вы можете проверить, перезаписаны ли какие-либо заголовки ответа некоторыми настройками брандмауэра. – fcalderan
Всегда ли длина ответа 4774 байта, когда этот ресурс заблокирован? Каково содержание ответа? – fcalderan