【问题标题】:webmethod returning whole html instread string valuewebmethod返回整个html instread字符串值
【发布时间】:2015-03-22 16:38:51
【问题描述】:

我正在尝试从 xmlhttp 对象调用 asp.net webmethod。

我的webmethod是这样的

[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;
}

【问题讨论】:

  • @Quentin 实际上,如果您只是阅读问题,您会发现它不一样。
  • @Quentin 我改了标题
  • 您对问题的更改没有任何意义。您向 URL 发出请求。您可以在字符串中获得响应的正文。由于该 URL 为您提供了 HTML 文档,因此您可以在字符串中获得完整的 HTML 文档。
  • @Quentin 是的,这就是问题所在。如何从 xmlhttp 对象调用 webmethod
  • 您似乎已经这样做了。网络方法只是没有做你想做的事。这不是 JavaScript 的问题。

标签: javascript asp.net ajax xmlhttprequest webmethod


【解决方案1】:

只有在您使用发布请求(您是)并将任何参数作为 JSON(您不是)发送到服务器时,ASP.NET 才会调用您的 Web 方法。如果不满足这些要求,ASP.NET 只会将您的请求视为对底层 ASPX 页面的正常请求。这就是您看到返回整个页面的 HTML 的原因。

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

详情请参阅本文最后一节:http://encosia.com/asmx-and-json-common-mistakes-and-misconceptions/

【讨论】:

  • 我正在调用一个带有参数“province”的方法,它是字符串。我的问题是我的网址是什么。应该是rental-1.com/lp.aspx?op=getCities?v。 v 是 json 对象。但它不起作用
  • @user4545762:像 lp.aspx/getCities 这样的 URL 是可以的,但是 JSON 对象需要作为请求的 POST 数据发送,而不是在查询字符串上。
  • 你能告诉我如何在请求的 POST 数据中做到这一点吗?
  • @user4545762:我手边没有原始 XMLHttpRequest 示例,但使用 jQuery 的 $.ajax 会是 $.ajax('lp.aspx/getCities', { type: 'post', contentType: 'application/json', data: JSON.stringify({ province: 'Ontario' }), success: function(response) { console.log(response); } });
  • 我正在寻找 javascript 解决方案,而不是 jquery。你能告诉我纯javascript解决方案吗?告诉我如何在帖子数据中嵌入参数信息
猜你喜欢
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
相关资源
最近更新 更多