Ajax POST永远不会被触发,也不会成功或错误
问题描述:
我试图通过使用AJAX来做的事情是,当我点击“Select”按钮时,来自SQL DB的所有相关信息都将被分配给相关标签。 问题是下面的AJAX代码($。ajax)永远不会被触发(既不成功也不出错)。警报(res [0])在屏幕上显示真实结果(因此clientid参数为true)。Ajax POST永远不会被触发,也不会成功或错误
这是从web应用项目Asp.Net
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(客户端ID)方法为好。
我很感谢您的帮助。
答
尝试的content-type
值更改为text/plain
双方的客户和服务器,并在成功函数中使用eval ('('+data+')')
。
我知道这是不正确的,因为服务器响应是json,但发生在我身上的是同一件事,当我在服务器上返回内容为content-type: application/json
时,我发现(我不知道原因)不要调用成功功能。
答
什么是你指定POST作为请求类型?看起来如果你使用GET会更自然(甚至方法名称告诉我们这个)。
此外,我不确定此语法data: "{ 'clientid': " + res[0] + "}"
,因为我更喜欢在单独的文件中编写脚本。无论如何,你可以尝试写data: { clientid: res[0] }
而不是
你是否开启了你的开发工具并观看网络?您应该看到浏览器发出的请求。检查服务器响应... – AMember
并且您已经包含了jQuery,并且您已检查控制台是否有错误。 – adeneo
有史以来最愚蠢的失踪事件:( –