以下のjavascriptコードがあり、ajax呼び出しでasync:falseを設定しない限り、.doneハンドラに戻ることができません。私のajax呼び出しにasync:falseパラメータを含めないと、サービスが返ってもクライアント上で何も起こりません。成功したjQuery Ajax呼び出しを非同期で処理することはできません
$(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は非常に簡単です:
は、ここに私のjavascriptのコードです。
public class AccountsController : ApiController
{
public AccountsController()
{
}
public bool Test()
{
return true;
}
}
私は、サーバーと呼ばれていることがわかりますが、私は決してすることができます:私は簡単な方法を持っている私のウェブAPIプロジェクトで
<!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>
:あなたが見ることができるように、私はjQueryの3.1.1を参照していますasync:falseパラメータがない限り、「Success」メッセージが表示されます。私はそれを削除したいと思います。この問題を解決するにはどうすればよいですか?
注:偽、'。なぜ 'json'タグが質問に含まれていますか? _ "async:falseパラメータを持たない限り、" Success "メッセージを受け取ることはありません" _ async:false'が '$ .ajax()'オプションで設定されていないとどうなりますか? – guest271314
質問が正しい構文になるように更新しました。 async:falseがajaxオプションから外されている場合、サーバーは呼び出されますが、javascriptは.doneコードを実行しません。 – YeahStu
これは起こりません! '$。post or $ .get'で試してみてください。 – Developer