UI側からAJAX関数を使用して呼び出すHTTPハンドラ(ASHX)があります。この呼び出しでは、次のことが必要です。ASP.net/JS/JQuery/AJAX-Ajaxは動作しますが、ハンドライベントが正しく起動しない
セクションがロードされると、shortcodestatusスパンのサーバー上のショートコードのステータスが表示されます。これは、オンまたはオフに言うだろう、次のいずれか
<a class="btn btn-default" id="toggleshortcode">Short Code <span id="shortcodestatus"></span></a>
これは、短いコードのステータスを取得するための関数であり、これは正常に動作します。私は手動でのショートコードのステータスを変更することができますし、私はページをリロードすると、変更は、divの上で適切に反映:
function ShortCodeStatus() {
$.ajax({
type: "GET",
url: "Handler.ashx?action=shortcodestatus",
success: function (output) {
console.log("getShortCodeStatus: " + output);
$("#shortcodestatus").empty();
if (output == "true") {
$("#shortcodestatus").text("ON");
$("#shortcodestatus").addClass("btn btn-success");
}
else {
$("#shortcodestatus").text("OFF");
$("#shortcodestatus").addClass("btn btn-danger");
}
}
});
};
これはハンドラからのショートコードステータスコードです:
私はCにできるようにしたいcase "shortcodestatus":
{
output = ShortCodeStatus() ? "true" : "false";
}
break;
toggleshortcode divを押して、ハンドラを介してこのイベントを起動します。ショートコードを無効にし、有効にするための機能が正しく動作している:
$('#toggleshortcode').click(function() {
$.ajax({
type: "POST",
url: "Handler.ashx?action=toggleshortcode",
success: function (output) {
console.log("toggleshortcode: " + output);
ShortCodeStatus();
}
});
});
:ここ
case "toggleshortcode":
{
if (ShortCodeStatus() == true)
{
DisableShortCode();
output = "false";
}
else
{
EnableShortCode();
output = "true";
}
}
break;
は短いコードトグルのAJAX呼び出しです私は正しくURLを打つよ、私は正しい応答を得ている各機能しかし、ショートコードへの変更は起こっていないようです。
たとえば、ショートコードがオフの場合、ShortCodeStatus関数はfalseを返し、オフボタンを表示します。 Toggleshortcodeボタンをクリックすると、出力は正しいです(短いコードを有効にしたい)が正しいですが、成功時にShortCodeStatus関数が再び発生すると、falseと表示されます。 AJAX関数は正しいようですが、ハンドラのtoggleshortcodeがなぜ正しく起動しないのかわかりません。
ありがとうございました!
どのようにしてShortCodeStatus()はAjaxリクエストから値を生成できますか? if文は、ajaxの応答を待つことはありません。私が間違っていないと、彼らは同期したままになり、あなたのajaxをバイパスします。 – trevster344
返信いただきありがとうございます!アヤックスのリクエストが正常に機能しているように見えても、途中で欠けているようだ。 – rasantos