Обновление: смотрите поток комментариев ниже, это не имеет ничего общего с jQuery, это проблема с правами доступа к файлам на сервере.
Оригинальный ответ :
Получаете ли вы какие-либо ошибки из браузера?Например, в Chrome или Safari, если вы откроете Dev Tools и посмотрите на вкладку Console, выдает ли это ошибки?Или в Firefox, установите Firebug и проверьте в консоли Firebug.Или в IE, используйте бесплатную версию VS.Net ... Что-то должно жаловаться вам на что-то.
Вы также можете получить больше информации из самого кода, предоставив функцию error
вместо предположенияуспех:
jQuery.ajax({
async:false,
type:'GET',
url:script,
data:null,
success:callback,
dataType:'script',
error: function(xhr, textStatus, errorThrown) {
// Look at the `textStatus` and/or `errorThrown` properties.
}
});
Обновление : вы сказали, что видите textStatus
= 'error' и errorThrown
= undefined.Очень странно.Работает ли такой же скрипт , если вы переместите его, чтобы он не находился в подпути?Интересно, является ли подпуть красной сельдью, и настоящая проблема - синтаксическая ошибка в сценарии.
Не по теме : действительно ли это действительно должны быть синхронными?Вы не можете просто опросить, чтобы появился символ?Просто синхронные запросы ajax на самом деле отбрасывают пользовательский опыт.Во многих браузерах не только ваша собственная страница, но и все страницы блокируются во время запроса.
Вот что я имею в виду под опросом: предположим, я хотел загрузить jQuery асинхронно из JavaScript:
function loadScript(url, symbol, callback) {
var script, expire;
// Already there?
if (window[symbol]) {
setTimeout(function() {
callback('already loaded');
}, 0);
}
// Determine when to give up
expire = new Date().getTime() + 20000; // 20 seconds
// Load the script
script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.body.appendChild(script);
// Start looking for the symbol to appear, yielding as
// briefly as the browser will let us.
setTimeout(lookForSymbol, 0);
// Our symbol-checking function
function lookForSymbol() {
if (window[symbol]) {
// There's the symbol, we're done
callback('success');
}
else if (new Date().getTime() > expire) {
// Timed out, tell the callback
callback('timeout');
}
else {
// Schedule the next check
setTimeout(lookForSymbol, 100);
}
}
}
Использование:
// Load jQuery:
loadScript("path/to/jquery.min.js", "jQuery", function(result) {
// Look at 'result'
});