嵌套 ajax 调用,第一次响应时回发
Nested ajax call, postbacks on first response
我在嵌套 AJAX 调用时遇到了一个非常奇怪的问题。第一个 success
回发整个页面,因此第二个 AJAX 调用 success
不会触发。我碰巧对此很困惑。以下是我正在尝试做的事情:
单击按钮时调用 ajaxMethod():
Page1.aspx asp 按钮:
<asp:Button ID="btnGet" runat="server" Text="Get" OnClientClick="ajaxMethod();" />
JavaScript:
function ajaxMethod() {
var txtvalue = "123";
$.ajax({
type: "POST",
url: "Page1.aspx/Method1",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{data:'" + txtvalue + "'}"
}).done(function (response) {
ajaxMethod2(response);
});
}
function ajaxMethod2(response) {
if (response.d == "success") {
var ddlVacancyID = 12;
$.ajax({
type: "POST",
url: "Page1.aspx/Method2",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{vacancyId:'" + ddlVacancyID + "'}"
}).done(function (response) {
console.log('res2');
ajaxMethod3(response);
});
} else {
$("#<%=lblMsg.ClientID%>").text(response.d)
}
}
function ajaxMethod3(response) {
console.log('response received');
}
下面是我的 aspx.cs 代码:
[WebMethod]
public static string Method1(string data)
{
return "success";
}
[WebMethod]
public static string Method2(int vacancyId)
{
return "success";
}
一个更奇怪的问题是,当我通过 F11 调试它时它工作正常,而没有调试它只是运行服务器端方法而没有捕获客户端的响应。
请原谅我对这门语言的无知,因为我是这门语言的新手。
另请注意,我已经尝试使用 success
以及 complete
,但没有成功。
在 asp 按钮中添加 return false
以禁用 ASP.NET 回发:
<asp:Button ID="btnGet" runat="server" Text="Get"
OnClientClick="ajaxMethod();return false;" />
我在嵌套 AJAX 调用时遇到了一个非常奇怪的问题。第一个 success
回发整个页面,因此第二个 AJAX 调用 success
不会触发。我碰巧对此很困惑。以下是我正在尝试做的事情:
单击按钮时调用 ajaxMethod():
Page1.aspx asp 按钮:
<asp:Button ID="btnGet" runat="server" Text="Get" OnClientClick="ajaxMethod();" />
JavaScript:
function ajaxMethod() {
var txtvalue = "123";
$.ajax({
type: "POST",
url: "Page1.aspx/Method1",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{data:'" + txtvalue + "'}"
}).done(function (response) {
ajaxMethod2(response);
});
}
function ajaxMethod2(response) {
if (response.d == "success") {
var ddlVacancyID = 12;
$.ajax({
type: "POST",
url: "Page1.aspx/Method2",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{vacancyId:'" + ddlVacancyID + "'}"
}).done(function (response) {
console.log('res2');
ajaxMethod3(response);
});
} else {
$("#<%=lblMsg.ClientID%>").text(response.d)
}
}
function ajaxMethod3(response) {
console.log('response received');
}
下面是我的 aspx.cs 代码:
[WebMethod]
public static string Method1(string data)
{
return "success";
}
[WebMethod]
public static string Method2(int vacancyId)
{
return "success";
}
一个更奇怪的问题是,当我通过 F11 调试它时它工作正常,而没有调试它只是运行服务器端方法而没有捕获客户端的响应。
请原谅我对这门语言的无知,因为我是这门语言的新手。
另请注意,我已经尝试使用 success
以及 complete
,但没有成功。
在 asp 按钮中添加 return false
以禁用 ASP.NET 回发:
<asp:Button ID="btnGet" runat="server" Text="Get"
OnClientClick="ajaxMethod();return false;" />