【发布时间】:2020-06-17 15:44:57
【问题描述】:
有没有办法使用原生 JS AJAX 调用 WebMethod?
类似于:
$.ajax({
type: "POST",
url: "AssignAdditional_Equip.aspx/getEquipListing",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var result = JSON.parse(data.d);
console.log(result);
},
error: function (response) {
alert(response);
}
});
下面的代码是我的尝试:
var requestVar = new XMLHttpRequest();
requestVar.open('GET', 'AssignAdditional_Equip.aspx/getEquipListing');
requestVar.onload = function () {
if (requestVar.status === 200) {
console.log(requestVar.responseText);
}
else {
alert('Request failed. Returned status of ' + xhr.status);
}
};
requestVar.send();
编辑:这是我关于代码隐藏的网络方法,以消除一些混乱
<WebMethod>
Public Shared Function getEquipListing()
Dim equipType_Options As New List(Of String)
Dim serializer As New JavaScriptSerializer
Dim sqlConn As New SqlConnection
Dim reader As SqlDataReader
sqlConn.ConnectionString = ConfigurationManager.ConnectionStrings("ITSGinventory").ConnectionString
Dim sqlCmd As New SqlCommand("SELECT DISTINCT(Equipment_Type) FROM tbl_Equipments ORDER BY Equipment_Type ASC", sqlConn)
sqlConn.Open()
reader = sqlCmd.ExecuteReader
While reader.Read()
equipType_Options.Add(reader("Equipment_Type"))
End While
sqlConn.Close()
sqlConn.Dispose()
Return serializer.Serialize(equipType_Options)
End Function
webmethod 应该返回一个序列化的字符串列表。使用 JQuery,它按预期工作。但是我的原生 AJAX 方法返回页面的 HTML 标记而不是字符串值。我做错了吗?
【问题讨论】:
标签: javascript asp.net ajax vb.net webmethod