#jquery #ajax #function
#jquery #ajax #функция
Вопрос:
Вот мой код:
$('#select').change(function() {
$.ajax({
url: Drupal.settings.basePath 'custom-ajax/' $(this).val(),
dataType: 'html',
success: function(response) {
$('#container').html(response);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
}
});
});
Первое «изменение» моего выбора возвращает «undefined (неопределенный)» в консоли, второе изменение работает как ожидалось ($ (‘#container’).html(response);). третье изменение возвращает неопределенный результат, четвертое изменение возвращает ожидаемый результат и т.д.
В каждом случае выполняется полный URL-адрес обратного вызова ajax — если я скопирую и вставлю этот URL-адрес в новое окно браузера, я могу нажать обновить 100 раз, и каждый раз он загружается успешно, поэтому я не верю, что это как-то связано с тем, что страница не отвечает. Стоит упомянуть, что при выполнении обратного вызова с ошибкой это происходит сразу после изменения выпадающего списка — у меня не создается впечатления, что он даже пытается вызвать указанный URL.
Ответ №1:
Если он даже не вызывает URL, как вы предлагаете, это говорит о том, что URL недействителен. Попробуйте посмотреть, что это возвращает в нескольких тестовых примерах:
$('#select').change(function() {
var url = Drupal.settings.basePath 'custom-ajax/' $(this).val();
alert(url);
window.location = url;
});
Комментарии:
1. Отличная идея для отладки! Я вставил этот код, и каждое изменение select правильно перенаправляет меня на новый URL. Я должен отметить, что консоль также показывает полный URL, который она пыталась получить, когда возвращает «undefined» — в этом случае я могу скопировать и вставить этот URL, и он нормально загружается.
2. Хорошо, можете ли вы предоставить HTML и пример URL-адреса, т. Е. все, что
Drupal.settings.basePath
возвращает, чтобы я мог это протестировать?3. Возвращаемый HTML-код (1 пример из многих …): <h2>VimNET Explorer</h2> <p>Lorem ipsum delor sit amet …</p>
4. Нет, я имею в виду разметку на странице.
#select
И#container
, например.5.
<select id="select"> <option selected="selected" value="">- Choose a Category -</option> <option value="vimnet">VimNET Explorer</option> <option value="plc">PLC</option> </select> <div class="clear-block"></div> <div id="container"></div>