TLDR
jQuery.get()
правильно извлекает информацию заголовка для одного значения select
option onchange
, но не для других, даже если они являются действительными URL.
Цель
Использование jQuery и GitLab API для проверки информации заголовка значения select
при изменении пользователем и перед отправкой формы.
Процесс
- Пользователь выбирает значение из
select
с классом opt0
. onchange
, звонки jQuery. - jQuery проверяет, что URL существует (и будет в конечном итоге go on для проверки деталей массива).
- jQuery возвращает массив существующего URL на консоль разработчика Chrome (на данный момент).
- jQuery в конечном итоге вернет неверный URL-адрес в виде сообщения консоли или
alert()
.
Фактические результаты
Консоль сообщает, что проект не найден для допустимых URL-адресов.
Выбор каждого из значений приводит к следующей информации консоли:
Имейте в виду, что все URL действительны и содержат правильные данные массива, которые я ищу.
Ожидаемые результаты
Я ожидаю, что, поскольку один URL работает правильно, все должны работать правильно, поскольку все они являются действительными URL. Ниже приведен пример желаемого результата:
- xxxxxxx:
(9) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
- ггггггг:
(3) [{…}, {…}, {…}]
- zzzzzzz:
(5) [{…}, {…}, {…}, {…}, {…}]
Ошибки
Возвращены сообщения об ошибках:
Я вошел в gitlab, поэтому аутентификация не должна быть проблемой.
Попытка
$.load()
- то же самое результат.
$.ajax()
- тот же результат.
$.get()
- показан с ошибкой. Я подумал, что я go с этим из-за его простоты.
parseInt(this.value)
- тот же результат.
var url = encodeURIComponent("https://gitlab.com/api/v4/projects/" +
parseIntthis.value) + "/repository/tree");
- не ' t load URL
Chrome консоль разработчика> Сеть> очистить кеш браузера
Chrome консоль разработчика> Сеть> XHR> Инициатор - > Путь и цепь выглядят правильно.
Код
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".opt0").change(function(){
var url = "https://gitlab.com/api/v4/projects/" + this.value + "/repository/tree";
$.get(url, function( data ) {
console.log(data);
}, "json" );
});
});
</script>
</head>
<body>
<?php
$menu = array('xxxxxxx', 'yyyyyyy', 'zzzzzzz');
echo "<select name=selex class='opt0'>";
echo "<option value=''>---</option>";
foreach ($menu as $option) {
echo "<option value=$option>$option</option>";
}
echo "</select>";
?>
</body>
</html>