ashx接收JSON数据的问题

问题描述

ashx文件如下<%@WebHandlerLanguage="C#"Class="SendPhoneCheck"%>usingSystem;usingSystem.Web;usingSystem.Collections.Generic;usingSystem.Data;usingDX.YYDai.Bill;usingDX.YYDAI.DBModel;usingDX.Foundation.Entity;usingDX.ERP.Common.Parm;usingDX.Foundation.Utils.Logger;publicclassSendPhoneCheck:IHttpHandler{stringphoneNo=string.Empty;publicstaticstringDateTimeFormat="yyyy'-'MM'-'dd'T'HH':'mm':'ss";tb_phoneNoCheckLogiclogic=newtb_phoneNoCheckLogic();publicvoidProcessRequest(HttpContextcontext){context.Response.ContentType="text/plain";InitData(context);context.Response.Write(GetJsonStr());}privatevoidInitData(HttpContextcontext){phoneNo=context.Request["phoneNo"];//传入}publicIDictionary<string,object>GetDictData(){IDictionary<string,object>obj=newDictionary<string,object>();try{if(string.IsNullOrEmpty(phoneNo))thrownewException("手机号码不能为空!");tb_phoneNoCheckdata=logic.GetPhoneNoCheck(phoneNo);tb_userInfoLogicuserInfoLogic=newtb_userInfoLogic();tb_userInfouserinfo=userInfoLogic.GetUserInfoByUserName(phoneNo);if(userinfo!=null)thrownewException("该手机号码已注册,请更换手机号码");if(null==data){stringrandNo=PubTools.GenerateCheckCode();data=newtb_phoneNoCheck();data.phoneNo=phoneNo;data.CheckNo=randNo;data.OrderDate=DateTime.Now;logic.Insert(data);//增加验证码记录PubTools.SendMessage(phoneNo,randNo);//发送手机验证码}else{stringrandNo=PubTools.GenerateCheckCode();data.CheckNo=randNo;data.OrderDate=DateTime.Now;logic.Update(data,data.CheckID.Value);PubTools.SendMessage(phoneNo,randNo);}AddDict(obj,1,"验证码发送成功!");returnobj;}catch(Exceptionex){newLogger("SendPhoneCheck.ashx").Exp(ex);AddDict(obj,0,ex.Message);returnobj;}}publicstaticvoidAddDict(IDictionary<string,object>obj,intflag,stringmessage){obj.Add("flag",flag);obj.Add("message",message);}///<summary>///获取数据模型///</summary>///<returns></returns>publicstringGetJsonStr(){IDictionary<string,object>obj=newDictionary<string,object>();try{obj=GetDictData();}catch(Exceptionex){AddDict(obj,0,"验证码发送失败");//newDX.Foundation.Utils.Logger.Logger("MyShowService.ashx").Exp(ex);//jsonTools.AddDict(obj,jsonTools.STATUS_ERROR,0,jsonTools.MESSAGE_ERROR,null);}stringstr=Encode(obj);returnstr;}publicboolIsReusable{get{returnfalse;}}publicstaticstringEncode(objecto){if(o==null||o.ToString()=="null")returnnull;if(o!=null&&(o.GetType()==typeof(String)||o.GetType()==typeof(string))){returno.ToString();}Newtonsoft.Json.Converters.IsoDateTimeConverterdt=newNewtonsoft.Json.Converters.IsoDateTimeConverter();dt.DateTimeFormat=DateTimeFormat;returnNewtonsoft.Json.JsonConvert.SerializeObject(o,dt);}}

应该如何写JS才能正确的把phoneNo提交进去并且得到flag和message两个参数呢?

解决方案

解决方案二:
直接用http://xxx.ashx?phoneNo=13900000000打开网址就行,至于获取结果,下面是参考示例:functionajax_submit(method,url,callback){varxmlhttp;try{xmlhttp=newXMLHttpRequest();}catch(e){xmlhttp=newActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function(){if(4==xmlhttp.readyState&&200==xmlhttp.status)callback(xmlhttp);}xmlhttp.open(method,url,true);xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');xmlhttp.send("");}functionset_data(xmlhttp){//varxml=xmlhttp.responseXML;//alert(xml.documentElement.childNodes[0].text);eval("xx="+xmlhttp.responseText);alert(xx.flag);alert(xx.message);}ajax_submit("get","http://localhost:58158/Web/test.ashx?p=123",set_data);

解决方案三:
url传参数就行了吧
解决方案四:
就一个手机号码验证,要那么复杂的什么json啊,什么Dictionary啊,不就是一个get传递参数吗?同时设定cache为false,否则你需要一个随机数让浏览器不记录你的html缓存

时间: 2024-11-08 19:19:54

ashx接收JSON数据的问题的相关文章

ThinkPHP中使用ajax接收json数据的方法_php实例

本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要代码如下: 复制代码 代码如下: function ajax(id,pic){     //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义. var URL='__URL__';         $.ajax({     

AJAX如何接收JSON数据示例介绍_AJAX相关

简介 在我们了解如何使用AJAX返回JSON数据的时候要先明白下列几点 1. JSON如何来表示对象的 2. JSON如何来表示数组的 复制代码 代码如下: var object = { "labId": "1", "labName": "服装" }; 通常我们使用如上的方式来表示JSON对象,那么数组呢 复制代码 代码如下: var array = [{ "labId": "1", &

AJAX如何接收JSON数据示例介绍

简介 在我们了解如何使用AJAX返回JSON数据的时候要先明白下列几点 1. JSON如何来表示对象的 2. JSON如何来表示数组的 复制代码 代码如下: var object = { "labId": "1", "labName": "服装" }; 通常我们使用如上的方式来表示JSON对象,那么数组呢 复制代码 代码如下: var array = [{ "labId": "1", &

通过$.ajax接收json数据,再经过$.each循环组成table,显示全是undefined,如何解决?

问题描述 需求描述:jsp页面上,根据用户名(如"zhangsan")查找所有同名的客户,通过$.ajax异步提交表单;将返回的json数据循环拼接组成一个表格.现在得到每个td中全是undefined,请问如何解决?1:td显示undefined2:jsp中$.ajax3:struts配置4:ibatis语句5:控制台输出是否正常?PS:菜鸟起步,十分搜索艰难,请勿见笑,感谢解答! 解决方案 解决方案二:能不能把打印出来的data发下解决方案三:http://img.bbs.csdn

asp.net 的前台用$.ajax调用ashx返回json数据问题

问题描述 asp.net的前台用$.ajax调用ashx返回,如果把ajax的dataType改为'"text",alert(msg)显示{"id":"111","c1":"aa","c2":"bb"},dataType改为"json",alert(msg)不显示,alert(msg[0])显示{.用varobj=eval("("

JQuery把DataTable、list&lt;&gt;数据转换成JSON数据

   代码如下 复制代码 一般处理程序JsonDate.ashx     public void ProcessRequest(HttpContext context)     {         context.Response.ContentType = "text/plain" ;         DataTable data2 = myData();         string str = DataTableToJson( "myJson" , data2

Spring mvc 接收json对象_javascript技巧

本文通过代码实例介绍spring mvc 接收json数据的方法,具体详情如下所示: 接收JSON 使用 @RequestBody 注解前台只需要向 Controller 提交一段符合格式的 JSON,Spring 会自动将其拼装成 bean. 1)在上面的项目中使用第一种方式处理返回JSON的基础上,增加如下方法: Java代码 @RequestMapping(value="/add",method=RequestMethod.POST, headers = {"conte

jquery ajax实例之ajax json数据的无刷新异步传输

在自己的一个后台cms中,想在同一个页面用弹出遮罩层的方式来修改会员信息 获取UserID是个很大的问题 最后同事给的建议用$.ajax  代码如下 复制代码     $('p.editInfo>a').bind('click',function(){                    $('#edit_uid').val($(this).attr("uid"));                    //alert($(this).attr("uid"

javascript中JSON数据接受,处理介绍

js读取JSON的方法我接触到的有两种: 方法一:函数构造定义法返回  代码如下 复制代码 var strJSON = "{name:'json name'}";//得到的JSON var obj = new Function("return" + strJSON)();//转换后的JSON对象 alert(obj.name);//json name 方法二:js中著名的eval函数  代码如下 复制代码 var strJSON = "{name:'jso