У меня есть , следующий за jsfiddle
<style>
.line {
fill: none;
stroke: steelblue;
stroke-width: 2px;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var data = [{ "date": "1-May-10", "close": 2 }, { "date": "1-May-12", "close": 7 }];
var result = { // a mock version of our response
"javascript": ["https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.js", "https://cdn.jsdelivr.net/gh/nottoobadbutgoodname/tester/chart.js"
]
}
function loadAll(resultt) { // throwaway var resultt as we are using our mock result
console.log("loading....");
getMultiScripts = function (arr) {
var _arr = $.map(arr, function (scr) {
return $.getScript(scr);
});
_arr.push($.Deferred(function (deferred) {
$(deferred.resolve);
}));
return $.when.apply($, _arr);
}
getMultiScripts(result.javascript.slice(0, -1)).done(function () {
$("<script/>", {
src: result.javascript[result.javascript.length - 1]
}).appendTo("body");
});
}
function main() {
$(document).ready(function () {
$.ajax({
url: "http://127.0.0.1:8000",
success: loadAll
});
});
}
main(); // doesn't work
//loadAll(result); // works!
</script>
Запуск loadAll (результат) напрямую работает, но когда я пытаюсь сделать это с помощью вызова ajax, он молча завершается неудачей.По сути, вызов ajax захватывает некоторые файлы .js, которые затем загружаются.Запуск main извлекает сценарии, но, похоже, не выполняет их (код состояния для обоих - 200, но код состояния для chart.js выделен серым цветом при запуске main (), но черным при запуске loadAll ()
РЕДАКТИРОВАТЬ:
Это странно. Так как в примере я просто высмеиваю результат, я думал, что я попробую эксперимент:
https://jsfiddle.net/rwzm4t75/4/
В основном, я перехожуэто в вызов JSONP, захват некоторых случайных данных JSONP и включение loadAll в функцию jsonCallback. Диаграмма теперь загружается последовательно, но, к сожалению, для «реального мира» результат не может быть смоделирован, и данные поступают как JSON, а не JSONP.
Для ясности, я попробовал ответ JSON в моем реальном приложении и JSONP. Иногда загружается JSON-версия, но не всегда. JSONP-версия всегда загружается.