AJAX在ASP.NET中调用未触发服务器端方法

23 浏览
0 Comments

AJAX在ASP.NET中调用未触发服务器端方法

我正在开发asp.net webforms,但在从客户端发出ajax调用时无法解决一个问题。

我有客户端脚本:



以及在Default.aspx.cs文件中返回字符串变量html的服务器端方法:

[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,而不是我期望从getnewmails方法获取的html...

此外,当在服务器端方法中设置断点时,它不会被触发。

感谢您的帮助。

0
0 Comments

问题出现的原因是ASP.Net AJAX页面方法只支持POST请求,解决方法是将ajax调用的类型(type)改为POST。

0