AJAX 调用 ASP.NET 而不是触发服务器端方法
AJAX Call in ASP.NET not Firing Server Side Method
我正在 asp.net 网络表单上开发,在从客户端发出 ajax 调用时无法解决问题。
我得到了客户端脚本:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "GET",
url: "Default.aspx/getnewmails",
data: {},
dataType: "html",
success: function (str)
{
$("#div2").html(str);
}
});
});
</script>
和服务器端方法 return html in string var in Default.aspx.cs
:
[WebMethod]
public static string getnewmails()
{
string URI = "https://somewebsite.com/GetEmails.aspx";
WebClient webClient = new WebClient();
System.Collections.Specialized.NameValueCollection formData = new System.Collections.Specialized.NameValueCollection();
try
{
formData["uname"] = "john.g";
formData["upass"] = "12345";
byte[] responseBytes = webClient.UploadValues(URI, "POST", formData);
string Result = Encoding.UTF8.GetString(responseBytes);
return Result;
}
catch
{
return "";
}
}
出于某种原因,在进行 ajax 调用时,我得到的是 Default.aspx
同一页的 html 而不是我希望从获取新邮件方法...
此外,在服务器端方法中放置断点时,它不会被命中。
感谢您的协助
我已经更新了你的代码,它对我有用。
更新代码:
$.ajax({
type: "POST",
url: "Default.aspx/getnewmails",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$("#div2").html(data.d);
},
error: function (xhr, ajaxOptions, thrownError) {
$("#div2").html('error: ' + xhr.status + ' ' + thrownError);
}
});
我正在 asp.net 网络表单上开发,在从客户端发出 ajax 调用时无法解决问题。 我得到了客户端脚本:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "GET",
url: "Default.aspx/getnewmails",
data: {},
dataType: "html",
success: function (str)
{
$("#div2").html(str);
}
});
});
</script>
和服务器端方法 return html in string var in Default.aspx.cs
:
[WebMethod]
public static string getnewmails()
{
string URI = "https://somewebsite.com/GetEmails.aspx";
WebClient webClient = new WebClient();
System.Collections.Specialized.NameValueCollection formData = new System.Collections.Specialized.NameValueCollection();
try
{
formData["uname"] = "john.g";
formData["upass"] = "12345";
byte[] responseBytes = webClient.UploadValues(URI, "POST", formData);
string Result = Encoding.UTF8.GetString(responseBytes);
return Result;
}
catch
{
return "";
}
}
出于某种原因,在进行 ajax 调用时,我得到的是 Default.aspx
同一页的 html 而不是我希望从获取新邮件方法...
此外,在服务器端方法中放置断点时,它不会被命中。
感谢您的协助
我已经更新了你的代码,它对我有用。
更新代码:
$.ajax({
type: "POST",
url: "Default.aspx/getnewmails",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$("#div2").html(data.d);
},
error: function (xhr, ajaxOptions, thrownError) {
$("#div2").html('error: ' + xhr.status + ' ' + thrownError);
}
});