Javascript 试图解析C中序列化的JSON时出现问题#
我正在尝试将数据从C#发送到JS。我以这种方式序列化它:Javascript 试图解析C中序列化的JSON时出现问题#,javascript,c#,json,serialization,Javascript,C#,Json,Serialization,我正在尝试将数据从C#发送到JS。我以这种方式序列化它: protected void Page_Load(object sender, EventArgs e) { Mydata mydata = new Mydata(); mydata.name = "john"; var json = new JavaScriptSerializer().Serialize(mydata); Context.Re
protected void Page_Load(object sender, EventArgs e)
{
Mydata mydata = new Mydata();
mydata.name = "john";
var json = new JavaScriptSerializer().Serialize(mydata);
Context.Response.Write(json);
}
在JS方面,我正在这样做:
page_request.onreadystatechange = function () {
if (page_request.readyState == 4) {
if (this.status == 200) {
console.log(JSON.parse(page_request.responseText));
}
}
}
它引发了以下错误:“uncaughtsyntaxerror:意外标记<在JSON中”
我的答复如下:
{"name":"john"}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form method="post" action="./SaveMinimum.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="aWjLtFUtylw6y57ZUALh7nrMIi/DnQX9NMokkMybnU3A5NV7mFW+00LcRuAJMPXWebf4w6HiyjI+7iXZoGyVB5Scq1g=" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="EF9FB8B6" />
</div>
<div>
</div>
</form>
</body>
</html>
{“name”:“john”}
当然,问题是JSON数据正下方的HTML。你知道怎么压制它吗
谢谢 首先尝试将内容类型设置为json:
Context.Response.ContentType = "application/json; charset=utf-8";
Context.Response.Write(json);
Context.Response.End();
您不应该尝试使用页面发送数据。或者处理程序更合适。请尝试context.Response.ContentType=“application/json;charset=utf-8”;谢谢!它做到了这一点,但做了一个小改动:Context.Response.Write(json);哦,是的,是json,对不起,我想补充一点,我特别喜欢这个解决方案,因为我不必使用全新的实现(webmethod);相反,我可以使用常规页面实现。:-)@YanKleber a System.Web.UI.Page实现了IHttpHandler,但添加了许多您不需要的负担。这可能对您来说是最简单的(稍微简单一点),但在我看来,毫无理由地创建贯穿页面生命周期的内容是一种糟糕的做法。