0

jquery.ajaxからaspxにデータを送信し、そこで解析して応答に書き込みますが、そのデータはエラー部分に入っています。表示されていないエラーが発生していると思いますが、正しいデータがエラーで返されています部。コードは以下です。

Jクエリ

var json = "{'uname':'" + $("#uname").val() + "','pwd':'" + $("#pwd").val() + "'}";
        alert(json);
        $.ajax({
            type: "POST",
            url: "DataProcess.aspx?Save=1",
            data: json,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            success: function (msg) {
                alert(msg);
            },
            error: function (msg) { alert("failed: " + msg.responseText); }
        });

DataProcess.aspx.cs

namespace Test
{
    public partial class DataProcess : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                ProcessAjaxRequest();
        }
        private void ProcessAjaxRequest()
        {
            if (Request.ContentType.Contains("json") && Request.QueryString["Save"] != null)
                SaveMyData();
        }
        private void SaveMyData()
        {
            System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
            string line = "";
            line = sr.ReadToEnd();
            JObject jo = JObject.Parse(line);
            Response.Write(line);
            Response.Write((string)jo["uname"]);
            Response.Write((string)jo["pwd"]);

        }
    }
}

それで、エラー部分で応答が得られますが、何が問題なのですか?

K 問題が発生しました。上記のコードは正しいです。もう 1 つの疑問は、この同じ aspx.cs から特定の非静的メソッドを呼び出すことができるかということです。つまり、この "DataProcess.aspx/Test?Save=1" のようなものを試したときのことです。 . Webメソッドではないというエラーが表示されます。メソッドを次のように宣言しました

[WebMethod]
public void Test(){
}

K の皆さん、私は問題がなくなったと思っていましたが、ちょうど今、私がこの Response.Write("success") のような応答に文字列を書くと、jquery エラーブロックに来ることを観察しましたが、私がこのようなものを書くと " Response.Write(0);"、成功ブロックに来ています。最初のものも来るべきです、誰かが問題を説明してください

ありがとう

4

2 に答える 2

0

正確な問題はわかりませんが、jsonは文字列のように見えます。こんな感じになります

var json = {'uname':'" + $("#uname").val() + "','pwd':'" + $("#pwd").val() + "'};
于 2013-01-15T09:13:35.763 に答える
0

PageMethodsWebMethod (つまり、キーワードで装飾された静的メソッド)については既に理解していると思います。
後の質問に関しては、ページ メソッドとして非静的 (インスタンス) メソッドを使用することはできません。理由は非常に単純です。インスタンス メソッドは、コントロール ツリーを含むインスタンス変数にアクセスできます。ビューステートがないと、ASP.NET はポストバック シナリオで正しいコントロール ツリーの状態を保証できません。このようなニーズに対してUpdatePanelは、ASP.NET コントロール モデル内で AJAX を提供するための方法です。ページ メソッドは、要求/応答データがオーバーヘッドのない最小限のもの (つまり、クライアント/サーバー間で通信したい唯一の意味のあるデータ) の合理化された通信を目的としています。

于 2013-01-15T09:34:49.343 に答える