jquery的错误部分显示响应数据

本文关键字:响应 数据 显示 错误部 jquery | 更新日期: 2023-09-27 17:53:41

我正在从jquery发送一些数据。ajax到aspx,在那里解析和写响应,但数据是在错误部分,我认为一些错误正在发生,没有显示,但正确的数据是在错误部分得到返回。代码如下:

JQUERY

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我得到了问题,上面的代码是正确的,现在我的另一个疑问是,我可以从这个aspx.cs调用一个特定的非静态方法,我的意思是当我尝试这样的"DataProcess.aspx/Test?Save=1"。错误提示不是web方法,我将方法声明为

[WebMethod]
public void Test(){
}

K家伙,我认为问题已经消失了,刚才我观察到,如果我写一个字符串来响应像这样的response . write("成功"),它的jquery错误块,但是当我写这样的东西"response . write(0);",它的成功块。第一个也应该来,有人解释一下是什么问题

谢谢

jquery的错误部分显示响应数据

不确定确切的问题,但你的json看起来像一个字符串。应该是这样的

var json = {'uname':'" + $("#uname").val() + "','pwd':'" + $("#pwd").val() + "'};

我假设你已经弄清楚了PageMethods(即用WebMethod关键字装饰的静态方法)。
关于你后来的问题,它的不可能使用非静态(实例)方法作为页面方法。原因很简单——实例方法可以访问包括控制树在内的实例变量。没有视图状态,ASP。NET不能保证在回发场景中具有正确的控件树状态。对于这样的需求,UpdatePanel是可行的——因为它在ASP中提供了AJAX。. NET控制模型。页面方法是为流线型通信,其中请求/响应数据是极简的,没有开销(即唯一有意义的数据,你想在客户端/服务器之间进行通信)。