ajax访问websever经验

感谢vs_sundaylove提供的帮助。

链接地址:http://blog.csdn.net/vs_sundaylove/article/details/6586113

在jquery1.4以上版本加强了json的验证,必须标准才能相应success。

另外须在asmx内中加上ScriptService标记才能正常访问:

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

    public class gethouse : System.Web.Services.WebService

代码如下:

var response = HttpContext.Current.Response;
            var context = HttpContext.Current.Request;


            response.Clear(); //清空无关信息
            response.Buffer = true; //完成整个响应后再发送
            response.Charset = "GB2312";//设置输出流的字符集-中文
            response.AppendHeader("Content-Disposition", "attachment;filename=Report.doc");//追加头信息
            response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流的字符集
            response.ContentType = "text/json";
            person p = new person();
            p.id = page; p.name = "zhangzhan";
            JavaScriptSerializer jser = new JavaScriptSerializer();
            //获取回调函数名


            response.Write(jser.Serialize(p));

}

/

$.ajax({
                type: "post", //访问WebService使用Post方式请求
                url: "/house/gethouse.asmx/gethouses", //调用Url(WebService的地址和方法名称组合---WsURL/方法名)
                data: "{page:'1'}",  //这里是要传递的参数,为Json格式{paraName:paraValue}
                contentType: "Application/Json", // 发送信息至服务器时内容编码类型
                beforeSend: function (XMLHttpRequest) {
                    XMLHttpRequest.setRequestHeader("Accept", "Application/Json"); // 接受的数据类型。(貌似不起作用,因为WebService的请求/返回 类型是相同的,由于请求的是Json,所以,返回的默认是Json)
                },
                success: function (data) {
                    var jsonValue = data;
                    alert(jsonValue.d[0].id); // 输出Json
                    var el, li, i;
                            el = document.getElementById('thelist');
                            for (i = 0; i < 3; i++) {
                                li = document.createElement('li');
                                li.innerText = 'Generated row ' + jsonValue.d[0].name;
                                el.appendChild(li, el.childNodes[0]);
                            }
                },
                complete: function (XMLHttpRequest, textStatus) {
                    var returnText = XMLHttpRequest.responseText;
                    alert(returnText); // 输出服务器端返回数据
                },
                error: function () { }


            });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值