У меня есть сочетание проблем, которые вместе являются сложными. Чтобы начать одновременные вызовы ajax GET при загрузке страницы, я начал писать $ .when (). Then (), как показано ниже:
function whenStart(passdata) {
$.when(getAJAX(empcasesjsonurl), getAJAX(reportcasesjsonurl))
.then(function(data1,data2) { showData(data1,data2,passdata); })
.fail(function(xhr, status, error) { console.log("getAJAX ERROR: " + error + ", " + xhr.status + ", " + xhr.statusText); });
}
Перед добавлением одновременных вызовов, подобных этим, мои json файлы на сервере была обернута в функцию с именем callBack следующим образом, чтобы воспользоваться возможностью перекрестного происхождения ajax GET jsonp:
callBack([
[
{
"inputid": "height",
"inputval": "333"
},
{
"caseid": "NPYy3q",
"casebirth": 1584124928894,
"expire": true,
"username": "aaa"
}
],
[
{
"inputid": "height",
"inputval": "222"
},
{
"caseid": "NPPPPP",
"casebirth": 1584124928884,
"expire": true,
"username": "aaa"
}
]
]);
Вот мой оригинальный вызов ajax:
function getAJAX(jsonurl) {
return $.ajax({
dataType: "jsonp",
type: "GET",
url: jsonurl,
jsonpCallback: 'callBack',
async: true,
});
}
Как и ожидалось, я часто, но не всегда получаю "get AJAX ОШИБКА: ошибка: callBack не был вызван, 200, загрузка" из-за проблемы JQuery, имеющей проблемы с использованием того же имени функции (callBack) одновременно.
Мое решение состояло в том, чтобы прекратить определять jsonpCallback, чтобы JQuery выполнял свою обычную работу jsonp со случайными именами функций обратного вызова. Однако как я могу обернуть мой json файл в правильное имя функции? Мне кажется, что я что-то упускаю из-за того, как работает генерация и использование jsonp automati c arg или как я должен записывать файл json на сервер.