$('#logout').on('click', function () {
console.log("clicked");
$.ajax({
type:"GET",
url: 'Home.aspx?method=simple'
}).done(function (data) {
console.log(data);
});
//PageMethods.simple();
});
public void simple()
{
Response.Clear();
Home h = new Home();
//h.logout();
Response.Write("some string");
Response.End();
}
public void logout()
{
Response.Redirect(Config.Value("logout"));
}
<add key="logout" value="http://localhost:52232/Account/Social" />
当我从客户端调用服务器端方法时,它返回整个页面而不是重定向请帮助我 谢谢
答案 0 :(得分:1)
您的退出方法必须是静态的。
[WebMethod]
public static void logout()
{
Response.Redirect(Config.Value("logout"));
}
在jQuery AJAX调用中调用logout
方法而不是simple
。
$('#logout').on('click', function () {
console.log("clicked");
$.ajax({
type:"GET",
url: 'Home.aspx/logout'
}).done(function (data) {
console.log(data);
});
//PageMethods.simple();
});
另一种方法是使用window.location
重定向客户端的最终用户。
$('#logout').on('click', function () {
window.location = "http://localhost:52232/Account/Social";
});
答案 1 :(得分:0)
此Ajax调用从服务器端返回一个值。如果要重定向页面,则需要指定它。
$(document).ready(function () {
$('#logout').on('click', function () {
console.log("clicked");
$.ajax({
type: "POST",
url: 'Home.aspx?method=simple'
}).done(function (data) {
window.location = data;
});
});
});
背后的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(Request.QueryString["method"]))
{
if (Request.QueryString["method"].Equals("simple"))
{
Response.Write(ConfigurationManager.AppSettings["logout"]);
Response.End();
}
}
}
或使用网络方法
[WebMethod]
public static string logout()
{
return Config.Value("logout"));
}
然后ajax url更改为url:'Home.aspx / logout'