在Home.aspx中有一个脚本:
<script type="text/javascript"> function probarajax() { var Publicaciones = { "Categoria": "Noticia" } $.ajax({ type: "POST",url: "Controlador.ashx?accion=enviar",data: JSON.stringify(Publicaciones),contentType: "application/json; charset=utf-8",dataType: "json",success: function(data) { console.log(data); },error: function(XMLHttpRequest,textStatus,errorThrown) { alert(textStatus); } }); } </script>
在Controlador.ashx里面:
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; var categoria = string.Empty; JavaScriptSerializer javaSerialize = new JavaScriptSerializer(); categoria = context.Request["Categoria"]; var capaSeguridad = new { d = categoria }; context.Response.Write(javaSerialize.Serialize(capaSeguridad)); }
结果是:
Object {d: null}
为什么会这样?如果我使用值为“Noticia”的变量Publicaciones在数据中发送参数.
解决方法
解决方案就是这样
<script type="text/javascript"> function probarajax() { var Publicaciones = { "Categoria" : "Noticia" } $.ajax({ type: "POST",success: function (data) { console.log(data.d); },error: function (XMLHttpRequest,errorThrown) { alert(textStatus); } }); } </script>
在ashx里面
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; System.IO.Stream body = context.Request.InputStream; System.Text.Encoding encoding = context.Request.ContentEncoding; System.IO.StreamReader reader = new System.IO.StreamReader(body,encoding); string s = reader.ReadToEnd(); Noticia publicacion = JsonConvert.DeserializeObject<Noticia>(s); var capaSeguridad = new { d = publicacion.Categoria }; context.Response.Write(JsonConvert.SerializeObject(capaSeguridad)); }
与班级
public class Noticia { public string Categoria { get; set; } }
谢谢你的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。