我正在将一些数据从 jquery.ajax 发送到 aspx,在那里解析并写入响应,但是该数据出现在错误部分,我认为发生了一些错误,没有显示,但正确的数据错误返回部分。代码如下。
查询
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); }
});
数据处理.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"]);
}
}
}
所以我得到了错误部分的响应,有什么问题?
我遇到了问题,上面的代码是正确的,现在我的另一个疑问是,我可以从同一个 aspx.cs 调用特定的非静态方法吗,我的意思是当我尝试类似“DataProcess.aspx/Test?Save=1”的时候. 它给出了错误说不是网络方法,我将方法声明为
[WebMethod]
public void Test(){
}
K伙计们,我以为问题已经消失了,刚才我观察到,如果我写一个字符串来响应像这样的Response.Write(“成功”),它会出现在jquery错误块中,但是当我写这样的东西时“ Response.Write(0);",它进入成功块。第一个应该也来了,有人解释一下是什么问题
谢谢