Кажется, что ответ имеет немного другую структуру, чем вы ожидаете. Вы ожидаете:
[
{
"urls": {
"small": ...
...
},
....
},
...
]
Однако в корне есть дополнительный уровень:
{
"total": 8519,
"total_pages":852,
"results": [
{
"urls": {
"small": ...
...
},
....
},
...
],
...
}
Так что вместо:
var images = JSON.parse(this.responseText);
Вы должны написать:
var response = JSON.parse(this.responseText);
var images = response.results;