Ajax запрос js файла
jQuery.getScript() – производит запрос методом GET к серверу без перезагрузки страницы, с запросом javascript файла. При получении запрошенного файла, код внутри него будет автоматически выполнен.
jQuery.getScript( url [, success ] )
- url — url-адрес, по которому будет отправлен запрос.
- success (data, textStatus) — пользовательская функция, которая будет вызвана после ответа сервера.
- data — данные, присланные с сервера.
- textStatus — статус того, как был выполнен запрос.
тот метод представляет из себя альтернативу (сокращенным вариантом) использования функции $.ajax(), вызванной со следующими параметрами:
$.ajax({ url: url, dataType: "script", success: success });
Загруженный скрипт выполняется в глобальном контексте, поэтому он может ссылаться на другие переменные и использовать функции JQuery.
Обработчик успешного выполнения запроса
Скрипт будет запущен после того как файл будет загружен:
$.getScript("ajax/test.js", function(data, textStatus, jqxhr) { console.log(data); // данные console.log(textStatus); // успех console.log(jqxhr.status); // 200 console.log('Load was performed.'); });
Обработка ошибок
Начиная с jQuery 1.5 мы можем воспользоваться методом .fail():
$.getScript( "ajax/test.js" ) .done(function( script, textStatus ) { console.log( textStatus ); }) .fail(function( jqxhr, settings, exception ) { $( "div.log" ).text( "Triggered ajaxError handler." ); });
В версиях выше jQuery 1.5, глобальный метод .ajaxError() может быть использован для обработки ошибок:
$( "div.log" ).ajaxError(function( e, jqxhr, settings, exception ) { if ( settings.dataType == "script" ) { $( this ).text( "Triggered ajaxError handler." ); } });
Кэширование
По умолчанию, $.getScript() не использует кэширование. Настроить кэширование можно с помощью $.ajaxSetup():
$.ajaxSetup({ cache: true });
В качестве альтернативы, можно воспользоваться методом $.ajax().