Я новичок в Javascript, поэтому этот вопрос может быть основным.Я пытаюсь передать данные в метод POST веб-API, но не получаю значения правильно каждый раз.Я вижу, что javascript иногда отправляет только второй ответ (т.е. только requestOptions2), который, я думаю, связан с функцией обратного вызова.(Поскольку он не ожидает завершения первой функции обратного вызова для выполнения второй функции обратного вызова и отправки и вызова AJAX.) Кроме того, я не могу получить доступ к 'JSON.stringify (points) из Microsoft.Maps.loadModule (' Microsoft.Maps.Search ', function ()), поэтому я ищу способ передачи этих «точечных» данных в веб-API без потери информации.
Это мой код Javascript:
function RequestShuttle() {
Microsoft.Maps.loadModule('Microsoft.Maps.Search', function () {
var points = [];
var searchManager = new Microsoft.Maps.Search.SearchManager(map);
var requestOptions1 = {
bounds: map.getBounds(),
where: document.getElementById("origin").value,
callback: function (answer, userData) {
map.setView({ bounds: answer.results[0].bestView });
map.entities.push(new Microsoft.Maps.Pushpin(answer.results[0].location));
points.push((answer.results[0].location));
}
};
var requestOptions2 = {
bounds: map.getBounds(),
where: document.getElementById("destination").value,
callback: function (answer, userData) {
map.setView({ bounds: answer.results[0].bestView });
map.entities.push(new Microsoft.Maps.Pushpin(answer.results[0].location));
points.push((answer.results[0].location));
console.log(JSON.stringify(points));
$.ajax({
type: "POST",
data: JSON.stringify(points),
url: "api/Trip",
contentType: "application/json"
});
}
};
searchManager.geocode(requestOptions1);
searchManager.geocode(requestOptions2);
});
}