Предложенное решение: Чистое решение JavaScript AJAX
//HTML
<select id="category">
<option value="0">--Please Select Category--</option>
</select>
//Javascript onload Event
<script>
window.onload = function(){
var cat = document.getElementById('category');
loadCat(cat);
};
//Function that will assign Category to Element
function loadCat(element)
var e = element;
var xhr = new XMLHttpRequest();
var url = 'load_categories.php';
xhr.open('GET',url, true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200) {
var r = JSON.parse(xhr.responseText);
for (var key in r) {
if (r.hasOwnProperty(key)) {
var tempNode = document.createElement("option");
tempNode.value = r[key];
var textnode = document.createTextNode(r[key]);
tempNode.appendChild(textnode);
e.appendChild(tempNode);
}
}
}
};
xhr.send();
}
</script>
Сервер должен вернуть базовый объект JSON.Приведенный выше пример будет работать с ответом JSON сервера:
//JSON RESPONSE FROM SERVER
{"1":"Module","2":"Essential","3":"Security","4":"Improvement"}

Узел Кредит идет по ссылке ниже:
https://www.w3schools.com/jsref/met_node_appendchild.asp