Ajax POST永远不会被触发,无论是成功还是错误

本文关键字:无论是 成功 错误 永远 POST Ajax | 更新日期: 2023-09-27 17:57:18

我试图使用AJAX做的是,当我单击"选择"按钮时,来自SQL DB的所有相关信息都将分配给相关标签。问题是下面的 AJAX 代码($.ajax)永远不会被触发(既不成功也不错误)。alert(res[0]) 在屏幕上显示真实结果(因此 clientid 参数为 true)。

这是来自 Asp.Net 的Web应用程序项目

       function BindClientSummaryForm() {
            var skillsSelect = document.getElementById('<%= ddlSFoundClients.ClientID %>');
            var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;
            var res = selectedText.split('-');
            document.getElementById('<%= hiddenClientID.ClientID %>').value = res[0];
            alert(res[0]);
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetClientSummaryData",
                contentType: "application/json;charset=utf-8",
                data: "{ 'clientid': " + res[0] + "}",
                dataType: "json",
                success: function (data) {
                    alert("deneme");
                    document.getElementById('<%= lblClientNameSurnameD.ClientID %>').innerHTML = data.d.Firstname + " " + data.d.Lastname;
                    document.getElementById('<%= lblDateOpenedD.ClientID %>').innerHTML = data.d.DateFileOpened;
                    document.getElementById('<%= lblCityD.ClientID %>').innerHTML = data.d.City;
...
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Error occured while filling ClientSummary part.");
                }
            });
            return false;
        }
<asp:Button runat="server" CssClass="btnSelect fieldButton" ID="btnSSelect" Text="Select"  OnClientClick="return BindClientSummaryForm()"></asp:Button>

代码隐藏

[WebMethod]
public static MyClient GetClientSummaryData(String clientid) //GetData function
{
   ...
   return client;
}

调试器也永远不会下降到 C# 中的 GetClientSummaryData(clientid) 方法。

感谢您的帮助。

Ajax POST永远不会被触发,无论是成功还是错误

尝试将

客户端和服务器上content-type 值更改为text/plain,并在成功函数中使用eval ('('+data+')')

我知道这是不正确的,因为服务器响应是 json,但发生在我身上同样的事情,我发现(我不知道原因)当您在服务器上将内容作为content-type: application/json返回时,jQuery 不会调用成功函数。

您将 POST 指定为请求类型是为了什么?如果您使用 GET,似乎会更自然(甚至方法名称告诉我们这一点)。

我也不确定这种语法data: "{ 'clientid': " + res[0] + "}"因为我更喜欢在单独的文件中编写脚本。无论如何,您可以尝试编写data: { clientid: res[0] }