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) 方法。
感谢您的帮助。
尝试将
客户端和服务器上的 content-type
值更改为text/plain
,并在成功函数中使用eval ('('+data+')')
。
我知道这是不正确的,因为服务器响应是 json,但发生在我身上同样的事情,我发现(我不知道原因)当您在服务器上将内容作为content-type: application/json
返回时,jQuery 不会调用成功函数。
您将 POST 指定为请求类型是为了什么?如果您使用 GET,似乎会更自然(甚至方法名称告诉我们这一点)。
我也不确定这种语法data: "{ 'clientid': " + res[0] + "}"
因为我更喜欢在单独的文件中编写脚本。无论如何,您可以尝试编写data: { clientid: res[0] }