Я пытаюсь перебрать массив для получения данных с помощью $ .get, но я продолжаю получать отказы, сначала я получаю пути, откуда должны быть получены данные:
function getFiles() {
return $.get(URL + "/getdata.php");
}
var testing= await getFiles();
testing=$.parseJSON(testing);
возвращается:
["12487.html", "46962.html"]
это работает нормально, но сейчас я пытаюсь повторить, как это:
var surveyData=[];
for(var i=0;i<testing.length;i++){
console.log('in loop '+i)
surveyData.push(getHtml(testing[i]));
}
$.when(surveyData).done((...data)=>{
console.log(data);
}).fail((e)=>{console.log('failed:'+e)})
async function getHtml(fileName){
return await $.get((URL + '/surveys/' + fileName, { "_": $.now() },'html'));
}
Я пытался решить эту проблему уже несколько дней и, конечно, я искал в Интернете, но не мог найти решение, я продолжаю получать:
GET http://192.168.10.11:3000/html 404 (не найдено)
и
Uncaught (в обещании) {readyState: 4, getResponseHeader: ƒ,
getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ,…}
я хочу только массив, заполненный данными, поступающими из:
$.get((URL + '/surveys/' + fileName, { "_": $.now() },'html'));
но индекс должен совпадать с индексом тестирования, поэтому при тестировании первый элемент
123.html Первый элемент массива данных должен быть заполнен данными 123.html, а не заполняться, например, данными 345.html.
ценим любую помощь
редактировать
ответ от обещания
"Cannot GET / html↵"
я уже получил его без обещаний, но в результате неправильно проиндексировал данные
$.ajax({
url: URL + "/getdata.php",
cache: false,
success: function (data) {
serverfiles = $.parseJSON(data);
if (serverfiles.length) {
$.each(serverfiles, function (i, val) {
$.get(URL + '/surveys/' + val, { "_": $.now() }, function (html) {
//do something with html
}, 'html');
});
}
},
error: function (e) {
console.log(e);
},
fail: function (e) {
console.log('fail');
console.log(e);
}
});
Я использую Jquery 1.12.4 с Cordova для Android и IOS
UPDATE
используя код HMR, я получаю:
failed items:
failed: 12487.html error:
Object { readyState: 4, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), then: then(), … }
failed: 46962.html error:
Object { readyState: 4, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), then: then(), … }
successes:
Array []
со следующим:
abort: function abort()
always: function always()
complete: function add()
done: function add()
error: function add()
fail: function add()
getAllResponseHeaders: function getAllResponseHeaders()
getResponseHeader: function getResponseHeader()
overrideMimeType: function overrideMimeType()
pipe: function then()
progress: function add()
promise: function promise()
readyState: 4
responseText: "Cannot GET /html\n"
setRequestHeader: function setRequestHeader()
state: function state()
status: 404
statusCode: function statusCode()
statusText: "Not Found"
success: function add()
then: function then()
__proto__: Object { … }
пример HTML-данных:
<!DOCTYPE html><html><meta charset="UTF-8"><meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1,
minimum-scale=1, width=device-width"><head><title>Umfrage</title><link
rel="stylesheet" href="http://mysite.de/s/css/Theme.css" /><link
rel="stylesheet"
href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"
/><script
src="http://code.jquery.com/jquery-1.11.1.min.js"></script><script
src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script><script
src="http://mysite.de/s/main.js"></script><noscript>JavaScript ist
nicht aktiviert, bitte Aktivieren!</noscript></head><body><div
data-role="page" id="survey" data-theme="a"><div data-role="header"
data-position="fixed"><h2 id="title" style="text-align:center;">my
title</h2></div><form action="" method="post" id="form"><hr
id="hrid"><input type="submit" value="Abschicken" id="submit"><input
type="hidden" value="my title" name="titlename"
/></form></div></body></html>