0

データの取得に失敗しているjqueryからのハンドラーへの非常に単純なajax呼び出しがありparsererror、アラートボックスに結果を表示しようとするとそれが表示されます。

ASP.NET ハンドラー コード:

public void ProcessRequest (HttpContext context) {
          string json = new StreamReader(context.Request.InputStream).ReadToEnd();
        context.Response.ContentType = "application/json";
        context.Response.Write(json);
    }

Jクエリ

$('.submit').on("click",function(e) {
            e.preventDefault();
            var data1 = { "hi": "hello" };
            alert(data1.hi);
            $.ajax({
                  url: "/charity-challenge/CompetitionHelper.ashx",
                  data: data1,
                  dataType: 'json',
                  type: 'POST',
                  contentType: 'application/json; charset=utf-8',
                  success: function (data) {
                         alert("response = " + data);
                  },
                  error: function (data, status) {
                         alert("FAILED:" + status);
                  }
            });
      });

注: デバッグ中に Chrome で正常に応答することがわかります。しかし、どういうわけかアラートボックスに表示しようとすると、パーサーエラーが発生します。

また、ハンドラーにjsonデータを割り当てたいです。私はそれを行う方法の手がかりがありません。

ハンドラーにこのようなサンプル カルスがあります。json データをループしてこの変数に値を割り当てる方法を教えてください。

public class userData
      {
            public string EmailAddress { get; set; }
            public string EntryId { get; set; }
      }

これに対する回避策を見つけました。

私は完全なコールバックを追加し、アラートボックスに結果を表示しています。それなしでは機能しない理由はわかりませんが、誰かが知っている場合は回答を投稿してください。

これが完全なコールバックです。

complete: function(xhr, status) {
            if (status === 'error' || !xhr.responseText) {
                alert("Error");
            }
            else {
                var data = xhr.responseText;
                alert(data);
                //...
            }
        }
4

1 に答える 1