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-файлы, и он это исправил (по крайней мере, для меня)

Другие вопросы по тегам