为了账号安全,请及时绑定邮箱和手机立即绑定

jquery ajax post 方式ashx文件取不到值。

jquery ajax post 方式ashx文件取不到值。

慕田峪9158850 2018-12-07 01:42:27
我的Common.js如下 //处理一般AJAX功能。function InvokeHander(url,type,data, onSuccess, onFailure) {     $.ajax({        url: url, //路径        type: type, //请求方式        data: data, //请求的数据        dataType: "json",        contentType: "application/json;charset=utf-8",        beforeSend: function(x) {            x.setRequestHeader("Content-Type", "application/json;");        },        success: function(result) {            if (onSuccess) {                if (result.d != undefined)                    result = result.d;                onSuccess(result);            }         },        error: function(err) {            if (onFailure) {                onFailure(err);            }        }     }) } aspx页面js如下  <script type="text/javascript" src="javascript/jquery-1.3.2.min.js"></script>    <script type="text/javascript" src="javascript/Common.js"></script>    <script type="text/javascript">        $(function() {            $("#d1").change(function() {                 var did = $("#d1").find("option:selected").val();                if (did != "请选择") {                    InvokeHander("TypeHandler.ashx","POST","{id:'"+did+"'}" ,                    function(result) {                        if (result != null) {                            for (i = 0; i < result.length; i++) {                                var item = result[i];                                alert(item.TypeName);                             }                         }                    },             function(err) {                  alert('err');             });                }                else {                 }            });         });        </script>   ashx文件如下: <%@ WebHandler Language="C#" class="TypeHandler" %> using System;using System.Web;using System.Data;using System.Data.SqlClient;using System.Collections;using System.Web.Script.Serialization;public class TypeHandler : IHttpHandler {     public void ProcessRequest(HttpContext context)    {         if (context.Request["id"] == null)//这里永久为null用Request.form["id"]也不行        {                   }        else        {            context.Response.Write(GetType(decimal.Parse(context.Request["id"].ToString())));        }            }     public bool IsReusable    {        get        {            return false;        }     }     public string GetType(decimal id)    {        ArrayList arr = new ArrayList();        SqlConnection conn = new SqlConnection("server=PC-200911131211;database=petsdata;uid=sa;pwd=sa123456");        SqlDataAdapter da = new SqlDataAdapter("select * from infor_type2 where infor_type2_father='" + id + "'", conn);        DataSet ds = new DataSet();        da.Fill(ds);        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)        {            arr.Add(new {                TypeID = ds.Tables[0].Rows[i]["infor_type2_id"].ToString(),                TypeName=ds.Tables[0].Rows[i]["infor_type2_name"].ToString()                        });                }         JavaScriptSerializer serializer = new JavaScriptSerializer();        string result = serializer.Serialize(arr);        return result;          }     }    假如我把上面请求方法换成POST传进去的data换成: "id="+did ,ashx用request.QueryString["id"]就一点问题都没。 请博客园的高手帮帮我吧。。。。我看见CSDN上也有类似的情况,好像也没解决。 地址:http://topic.csdn.net/u/20091126/17/a015820e-d41f-4689-b6fe-232a098c2699.html
查看完整描述

11 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

context.Request[] 是不能用json的,data数据格式改成:id=121&name=sss 等等这种格式啊应该就行了,不行的话contentType 也修改一下

context.Request.GetResponseStream() 好像是这个方法吧,他可以获取post的流,json也就可以得到啊:)

查看完整回答
反对 回复 2019-01-21
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

InvokeHander("TypeHandler.ashx","POST","id="+did+"" ,

查看完整回答
反对 回复 2019-01-21
?
UYOU

TA贡献1878条经验 获得超4个赞

data: eval('"("+data+")"'), //请求的数据

查看完整回答
反对 回复 2019-01-21
?
12345678_0001

TA贡献1802条经验 获得超5个赞

在js顶部写 $.ajaxSetup({cache:false}); 关闭客户端缓存即可

查看完整回答
反对 回复 2019-01-21
?
函数式编程

TA贡献1807条经验 获得超9个赞

试过不行
查看完整回答
反对 回复 2019-01-21
?
万千封印

TA贡献1891条经验 获得超3个赞

是不是,不支持json的格式啊,你的.net是什么版本

查看完整回答
反对 回复 2019-01-21
?
噜噜哒

TA贡献1784条经验 获得超7个赞

这个问题不是没解决吗?为什么就结贴说已解决了。

查看完整回答
反对 回复 2019-01-21
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

解决没有啊 ? 我发现换个浏览器就可以,而且,昨天可以,今天再试不可以。

查看完整回答
反对 回复 2019-01-21
?
九州编程

TA贡献1785条经验 获得超4个赞

你把contentType: "application/json;charset=utf-8",这个参数去掉就既可以支持POST也可以支持GET了。

查看完整回答
反对 回复 2019-01-21
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

同样问题,这个试过可以了,谢谢

查看完整回答
反对 回复 2019-01-21
?
繁花如伊

TA贡献2012条经验 获得超12个赞

把contentType: "application/json;charset=utf-8",这个参数去掉就既可以支持POST也可以支持GET了。

查看完整回答
反对 回复 2019-01-21
  • 11 回答
  • 0 关注
  • 671 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信