ОРИГИНАЛЬНЫЙ ВОПРОС
Я пытаюсь написать функцию на JavaScript, которая позволяет загружать статьи из другого источника на другую страницу с использованием XMLHTTPRequest.
Каждая статья представляет собой объект JavaScript, содержащий ссылку, изображение, резюме и т. Д.
Каждый запрос будет получать 5 статей, но я хочу показывать только 4 статьи при каждом нажатии кнопки.Из-за этого я хочу поместить статьи (объекты) в глобальный массив.
Поскольку я довольно новичок в использовании запросов XMLHTTP, я не могу найти, как это сделать.
Все работает, за исключением:
var i;
for (i = 0; i < newArticles.length; i++) {
articles.push(newArticles[i]);
}
newArticles - это объект , содержащий 5 статей (объектов), которые я пытаюсь выдвинуть в глобальный массив под названием article.
Мой код:
var articles = [];
document.getElementById("fc-blog-button-loadmore").addEventListener("click", receiveNewArticles);
function receiveNewArticles() {
var http = new XMLHttpRequest();
var url = "thelinktothepagewith5newarticles.json";
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var newObj = JSON.parse(http.responseText);
var newArticles = (newObj.blog.articles);
console.log(newObj);
console.log(newArticles);
var i;
for (i = 0; i < newArticles.length; i++) {
articles.push(newArticles[i]);
}
console.log(articles);
}
}
http.open("GET", url, true);
http.send();
}
решено
После полезных комментариев мой код в настоящее время выглядит так:
var articles = [];
document.getElementById("fc-blog-button-loadmore").addEventListener("click", receiveNewArticles);
function receiveNewArticles() {
var http = new XMLHttpRequest();
var url = "http://freshcotton-dev.webshopapp.com/nl/blogs/blog/page2.html?format=json";
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var newObj = JSON.parse(http.responseText);
var newArticles = (newObj.blog.articles);
console.log(newObj);
console.log(newArticles);
articles.push(...Object.values(newArticles))
console.log(articles);
}
}
http.open("GET", url, true);
http.send();
}
Проблема была решена!