您的位置:首页 > 理论基础 > 计算机网络

AJAX中文乱码问题解决方案

2012-08-14 18:03 429 查看
当使用response.write返回JSON数据到前端时,需要在前面加上这句 response.ContentType = "text/html;charset=gb2312";

完整的代码

前端:

     <script type="text/javascript">

   $(document).ready(function(){

      AjaxHKmoHotel();

   });

      

    function AjaxHKmoHotel()

    {

    $.ajax({

                    type: "POST",

                    url: "HotelMessage.asmx/GetHotelInfoByPage",

                    data:{page:1},

                    dataType: "json",

             

                    success: function (data) {

                 alert(data.result.hotel[0].address);

       },

                    error: function (XMLHttpRequest, textStatus, errorThrown) {

                        alert("调用出错" + errorThrown);

                    },

                   complete: function(XMLHttpRequest, textStatus) {

                        // 调用本次AJAX请求时传递的options参数

                       

                    }

                });

   }

 

   </script>

后台webservices

    [WebMethod]

    public void  GetHotelInfoByPage(int page)

    {

        string ResponseStr = "";

        string url = "http://www.qmango.com/interface/comm/get_hotel_info.asp?page="+page.ToString();

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

        WebResponse res = req.GetResponse();

        Stream ReceiveStream = res.GetResponseStream();

        StreamReader SR = new StreamReader(ReceiveStream, System.Text.Encoding.Default);

        ResponseStr = SR.ReadToEnd();

        ResponseStr = XmlToJson.XmlToJSON(ResponseStr);

        HttpResponse response = HttpContext.Current.Response;

        response.ContentType = "text/html;charset=gb2312";

        response.Write(ResponseStr);

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息