当前位置:编程学习 > C#/ASP.NET >>

ASP.NET中使用Javascript Ajax 怎么返回Json

以前都是用Jquery框架  很方便... 现在用纯javascript实现...  返回的一直都是xml类型的....  求解..


    [WebMethod]
        [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
        public string Login(string UserName, string Password, string IsCheck)
        {
            Dictionary<string, string> d = new Dictionary<string, string>();

            JavaScriptSerializer JsonSerializer = new JavaScriptSerializer();//为Javascript启用反序列化
            this.Context.Response.ContentType = "application/json";
            this.Context.Response.BufferOutput = true;
            d.Add("key", "value");
          string retd=  JsonSerializer.Serialize(d);
          return retd;
             // this.Context.Response.Cookies.Add
        }


上面是方法  ....


 [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
     [System.Web.Script.Services.ScriptService]


类的头部.... 

 我使用的.NET 3.5  在配置文件中应该不要改吧..
XMLHttpRequest  对象是已经设置了Content-Type 为text/json (设置为 application/json;utf-8 也是一样的),通过getAllRequestHeaders方法获取是 Content-Type 一直为text/xml  怎么设置都不行...  希望哪位高人能详细解答下,, 最好是从原理层解答!!!!!!!  --------------------编程问答-------------------- ...自己来拉人气..   ...   每人在?
--------------------编程问答-------------------- ....................    大家帮忙解答下啊..
--------------------编程问答-------------------- 楼主究竟是要获取数据啊,还是要传递数据?


http://baike.baidu.com/view/1105115.htm

XMLHttpRequest.setRequestHeader()

语法
  setRequestHeader(name, value)name 参数是要设置的头部的名称。这个参数不应该包括空白、冒号或换行。
  value 参数是头部的值。这个参数不应该包括换行。
说明
  setRequestHeader() 方法指定了一个 HTTP 请求的头部,它应该包含在通过后续 send() 调用而发布的请求中。这个方法只有当 readyState 为 1 的时候才能调用,例如,在调用了 open() 之后,但在调用 send() 之前。
  如果带有指定名称的头部已经被指定了,这个头部的新值就是:之前指定的值,加上逗号、空白以及这个调用指定的值。
  如果 open() 调用指定了认证资格,XMLHttpRequest 自动发送一个适当的 Authorization 请求头部。但是,你可以使用 setRequestHeader() 来添加这个头部。类似地,如果 Web 服务器已经保存了和传递给 open() 的 URL 相关联的 cookie,适当的 Cookie 或 Cookie2 头部也自动地包含到请求中。可以通过调用 setRequestHeader() 来把这些 cookie 添加到头部。XMLHttpRequest 也可以为 User-Agent 头部提供一个默认值。如果它这么做,你为该头部指定的任何值都会添加到这个默认值后面。
  有些请求头部由 XMLHttpRequest 自动设置而不是由这个方法设置,以符合 HTTP 协议。这包括如下和代理相关的头部:
  Host Connection Keep-Alive Accept-charset Accept-Encoding If-Modified-Since If-None-Match If-Range Range
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,