日期:2014-05-16  浏览次数:20679 次

请教大家一个问题,jquery+ajax,往httphandlers(也就是后台)传递的 data: {"school" :"南京大学"} 参数,后台怎样才能接
请教大家一个问题,jquery+ajax,往httphandlers(也就是后台)传递的 data: {"school" :"南京大学"} 参数,后台怎样才能接到呢?

注意:数据传送方式为post (get的话,很简单就取到了。)

1,web侧的代码:
HTML code


    $(function(){
          $.ajax ({
      url : "MyJsonHandler/student.json",  // JSON数据的地址
            type: 'post',                        // 数据传送方式              
            dataType: 'json',                    // 数据类型
            data: {"school" :"南京大学"},        
            contentType: 'application/json',
        success : function( data, textStatus,jqXHR ) {
         alert("success");
        },
        // 返回结果为失败
        error : function(jqXHR, textStatus, errorThrown) {
        alert('error');    
        }
        });    
    });  
    </script>  



2,server侧的代码(c#完成)
C# code

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace MyHandlers
{
    public class MyJsonHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            // 如何取得 "school" 对应的值是 "南京大学" ????
        }
    }
}




我的问题:

如何从HttpContext 里面取到我在web侧设置的ajax的data {"school" :"南京大学"} 呀?[b][/b]

如果数据传送方式为get的话,利用
 context.Request.QueryString["school"]
就可以取到 “南京大学”了。


------解决方案--------------------

试试这个,我是这样取值的。

string school= context.Request.Params["school"].ToString();
------解决方案--------------------
url: "Test/Handler.ashx?school=1111", 

那只能在URL后面加参数了。
------解决方案--------------------
dataType: 'json',
contentType: 'application/json',

这两句去掉。我post的时候 加上这两句就不成功,去掉就可以了
------解决方案--------------------
方法里头加个school的参数不就完了。