SCRIPT5: Доступ запрещен в IE9 из-за файла CDN jQuery.min в Wordpress
Я прочитал довольно много других статей о SCRIPT5: Доступ запрещен в IE9, но, насколько я могу судить, он немного отличается, и я не совсем уверен, почему это происходит.
Ситуация возникла при установке Wordpress 3.4.1 с использованием стандартной темы 2011 года. Я поставил свои скрипты в очередь со следующей функцией:
function my_scripts(){
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js',null,null,true);
wp_register_script('cycle', 'http://ajax.microsoft.com/ajax/jquery.cycle/2.88/jquery.cycle.all.js',null,null,true);
wp_register_script('plugin', get_stylesheet_directory_uri() . '/scripts/plugin-init.js',null,null,true);
wp_enqueue_script('jquery');
wp_enqueue_script('cycle');
wp_enqueue_script('plugin');
}
Сначала jquery
и cycle
оба сценария извлекаются из CDN. plugin
Скрипт пуст за исключением основного cycle
вызов одного элемента.
На данный момент все браузеры работали нормально, за исключением IE9. Я получил следующую ошибку:
SCRIPT5: Access is denied
jquery.min.js, line 2 character 68522
Я достаточно быстро выяснил, что это проблема перекрестного происхождения:
Доступ запрещен к сценарию jQuery в IE
SCRIPT5: доступ запрещен в IE9 для xmlhttprequest
Я нашел это странным, так как в моих плагинах не было функций перекрестного происхождения. Также проблема была обнаружена на jquery
сам, а не мой код. Пробовал несколько предложенных исправлений, но не повезло.
Пробовал некоторые базовые вещи. Переместил скрипт прямо в нижний колонтитул. Попробовал перенести его прямо в шапку. Пытался вырезать мои сценарии из уравнения. Вытаскивая мои волосы в этот момент.
Моя лучшая ставка была на самом деле, чтобы увидеть, что вызвало ошибку в коде (так как я не мог на мини-версии). На этом этапе код был прямо в заголовке, поэтому удалил .min
По сценарию сделал обновление, и TA-DA: теперь все работает без проблем.
Если я попытаюсь переместить объявление незавершенного скрипта обратно в my_scripts()
использовать функцию wp_register_script
& wp_enqueue_script
это снова не удастся. Если я попытаюсь переместить объявление незавершенного скрипта в нижний колонтитул, оно снова не будет выполнено. Я не тестировал локальную копию в то время, только версии CDN.
Это та же ошибка SCRIPT5, но у меня, к сожалению, нет кода, из которого генерируется ошибка. Это было в офисе на днях, и я уезжаю на выходные. Я попытался воспроизвести события в моей личной песочнице, но безуспешно воссоздал ошибку, из-за чего я поверил, что виновником может быть что-то не в списке.
Кто-нибудь знает, что здесь происходит? Почему бы jquery.min
потерпеть неудачу там, где не будет унифицированного файла? И почему незавершенный файл будет продолжать сбой, если он не находится прямо в <head>
?
Рад предоставить больше информации, хотя некоторые из них, возможно, придется подождать, пока я не вернусь на работу на следующей неделе. Как только я смогу, я постараюсь опубликовать оставшуюся часть кода.
2 ответа
У меня была такая же проблема, jQuery 1.8.1 исправил эту проблему для меня
По какой-то причине ответ @axel не сработал для меня. Вместо этого я решил разместить файл на том же сервере, что и мои HTML-файлы, и он это исправил (по крайней мере, для меня)