webmethod返回整个html instread字符串值

webmethod returning whole html instread string value

本文关键字:instread 字符串 html 返回 webmethod      更新时间:2023-09-26

我正在尝试从xmlhttp对象调用asp.net Web方法。

我的网络方法就像这个

[WebMethod]
public string getCities(string province)

我的javascript就像下面的

 xmlhttp=new XMLHttpRequest({mozSystem: true});
 xmlhttp.open("POST","http://www.rental-1.com/lp.aspx/getCities/Ontario",true);
  xmlhttp.send();
 xmlhttp.onreadystatechange=function(){
alert(xmlhttp.readyState+", "+xmlhttp.status);
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var v1=xmlhttp.responseText;
alert(v1);
}}

作为回应,我得到了整个页面的html。但在上面,我只调用了webmethod,并期望返回字符串值。

任何帮助都将不胜感激。为什么我不只是得到字符串值,而不是页面的html

这是我的服务器端代码

[WebMethod]
public static List<string> getCities(string province)
{
    List<string> strp = new List<string>();

            strp=getCitiesFromDB(province);
    return strp;
}

ASP。只有当您使用post请求(您是)并将任何参数作为JSON发送到服务器(您不是)时,NET才会调用您的web方法。当这些要求没有得到满足时,ASP。NET只会将您的请求视为对底层ASPX页面的普通请求。这就是为什么您看到完整页面的HTML返回的原因。

如果您JSON.stringify({ province: 'Ontario' }),设置一个application/json的内容类型头,并将其作为POST数据发送,那么您应该从ASP返回一个JSON数组。NET而不是整页的HTML。

有关详细信息,请参阅本文的最后一部分:http://encosia.com/asmx-and-json-common-mistakes-and-misconceptions/