У меня есть код javascript ниже, и я не могу заставить его вернуться к обработчику .done, если я не установил async: false для вызова ajax. Если я не включаю параметр async: false в мой вызов ajax, на службе после выполнения службы ничего не происходит.Успешный вызов jQuery Ajax не обрабатывается асинхронно
Вот мой Javascript код:
$(function() {
$('#testButton').click(function() {
TestConnection();
});
});
function TestConnection() {
$.ajax({
url: 'http://localhost:52180/api/Accounts/Test',
type: 'POST',
async: false
}).done(function (data) {
alert('Success');
}).fail(function (jqXHR, textStatus, err) {
alert("There was an error communicating with the Mojo-Store server.");
});
}
Мой Html очень просто. Как вы можете видеть, я ссылку JQuery 3.1.1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script src="jquery-3.1.1.min.js"></script>
<script src="ServerCommunication.js"></script>
</head>
<body>
<button id="testButton">
</body>
</html>
В моем Web API проекте У меня есть простой метод:
public class AccountsController : ApiController
{
public AccountsController()
{
}
public bool Test()
{
return true;
}
}
Я могу видеть, что сервер называется, но я никогда получите сообщение «Успех», если у меня нет параметра async: false. Я хотел бы удалить это. Что мне нужно сделать, чтобы исправить эту проблему?
Примечания, Запятая следующего 'асинхронный: ложь,'. Почему метка 'json' включена в вопрос? _ «Я никогда не получаю сообщение« Успех », если у меня нет параметра async: false» _ Что происходит, когда 'async: false' не задано в параметрах' $ .ajax() '? – guest271314
Я обновил вопрос, чтобы иметь правильный синтаксис. Когда async: false отключен от параметров ajax, тогда сервер вызывается, но javascript не выполняет код .done – YeahStu
Этого не должно быть! Не могли бы вы просто попробовать с $ .post или $ .get' – Developer