0

jQuery ajax 経由で .NET ジェネリック ハンドラー (.ashx) にリクエストを送信しています。

JSONLintで検証したJSONを返していますが、機密データであるため投稿できません。

問題は、呼び出しが同期的に行われた場合にのみ返されることです ( async:false)。非同期で実行すると、元に戻ることはありません。 async:false私の成功関数とすべてのグローバル関数を呼び出します。 async:trueはグローバル関数のみを呼び出し、はそれらを他の関数ajaxStartと同様に呼び出します。ajaxSendasync:false

さらにデバッグする方法や、応答が返されない理由を特定する方法がほとんどわかりません。

$.ajax({
    type: "POST",
    async: false,
    cache: false,
    timout: 600000,
    data: request_object.GetQueryString(),
    dataType: "json",
    responseType: "json",
    error: function (request, error_type, error_message) {
        alert("error");
    },
    success: function (data, status, request) {
        alert("success");
    },
    url: "./ReportRequestHandler.ashx",
    complete: function () {
        alert("here");
    }
});

$(document).ajaxError(function () {
    alert("ajaxError");
}).ajaxSend(function () {
    alert("ajaxSend");
}).ajaxStart(function () {
    alert("ajaxStart");
}).ajaxStop(function () {
    alert("ajaxStop");
}).ajaxSuccess(function () {
    alert("ajaxSuccess");
}).ajaxComplete(function () {
    alert("ajaxComplete");
});
4

3 に答える 3

0

問題を見つけました。イベントをトリガーするために使用されたボタンは、ページを送信し、リロードが速すぎて点滅が表示されませんでした。

于 2012-09-20T11:49:27.920 に答える
0

「。」のせいだと思います。URLで。それを削除しようとしましたか?これもチェックしてください、彼らは似たようなものを持っています

非同期の使用時にjQueryが応答を取得しない

それが役に立てば幸い

于 2012-09-19T21:25:45.947 に答える
0

あなたの構成のsans async属性を含むページでコードを実行しましたが、うまく機能しているようです..

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Pages" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

    <title></title>

    <script type="text/javascript">
        $(document).ajaxError(function() {
            alert("ajaxError");
        }).ajaxSend(function() {
            alert("ajaxSend");
        }).ajaxStart(function() {
            alert("ajaxStart");
        }).ajaxStop(function() {
            alert("ajaxStop");
        }).ajaxSuccess(function() {
            alert("ajaxSuccess");
        }).ajaxComplete(function() {
            alert("ajaxComplete");
        });
        $.ajax({
            type: "POST",
            timout: 600000,
            data: { 'type': 'check' },
            dataType: "json",
            responseType: "json",
            error: function(request, error_type, error_message) {
                alert("error");
            },
            success: function(data, status, request) {
                alert("success");
            },
            url: "../../Ajax/GenericData.ashx",
            complete: function() {
                alert("here");
            }
        });

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
    </div>
    </form>
</body>
</html>

すべてのアラート メッセージを順番に受け取りました。ブラウザのコンソール セクションを確認して、async:false が構成から削除されたときにリクエストがどのように行われているかを正確に確認できますか?

于 2012-09-19T21:30:42.597 に答える