当使用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);
}