我在文档就绪函数中用JQuery编写了一个webservice调用,但它没有调用函数
以下是代码 JQuery的
`<script type="text/javascript">
$( document ).ready(function() {
var section = "Table - TLI (STOCK)";
$.ajax({
type: "GET",contentType: "application/json; charset=utf-8",
url: "pgWebService.aspx/SliderBlock",
dataType: "json",
data: "{'section':'" + section + "'}",
success: function (res) {
//$("#Text1").val(res.text);
console.log(res);
alert("DONE");
}
});
});
</script>`
C#代码 pgWebService
public static string SliderBlock(string section)
{
string html = "<ul class='maketabs listing-table search-filter change-view'>";
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["TLI"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cn.Open();
cmd.Connection = cn;
cmd.CommandText = "Select * from CategoryDetails where section=" + section;
SqlDataReader rs = cmd.ExecuteReader();
while (rs.Read())
{
html="<li>"+rs.getValue(0).toString()+"</li>";
}
rs.Close();
cmd.Dispose();
cn.Close();
html = html + "</ul>";
return html;
}
答案 0 :(得分:2)
如果您的方法SliderBlock
落后于代码而不是让ajax调用您的方法WebMethod
,那么您需要将其设为static
并由{{1}调用您需要在WebMethod上发出GET
个请求。
enable GET
答案 1 :(得分:0)
由于您的代码具有扩展名.aspx
,我假设您正在使用代码隐藏(Page Method)。因此,您需要对函数签名进行这些更改
[System.Web.Services.WebMethod]
public static string SliderBlock(string section)
即,
System.Web.Services.WebMethod
在$ .ajax调用中,将dataType更改为json。
dataType: "json"
另外,请记住pgWebService.aspx.cs 中的PageMethid只能从 pgWebService.aspx中调用
答案 2 :(得分:0)
ajax请求中仍有错误:
Content-Type :将数据发送到服务器时,请使用此内容类型。但是,除了查询字符串参数之外,您不会向服务器发送数据,因为您正在进行GET。因此,如果您使用webbrowser开发人员工具检查请求,您会看到使用此URL的GET: localhost / pgWebService.aspx / SliderBlock?section = selectedSection ,因为......
数据:要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。
dataType :您期望从服务器返回的数据类型。但是在您的webService中,您将返回一个HTML而不是JSON的字符串。