私はcontroller
を呼び出してURLをリダイレクトしています。 Usercontroller.cs
は、ClearSessionAnCoodkies
の方法を有する。 このhttpget
メソッドClearSessionAndCookies()
のルートを追加しました。セッションクリアのJavaScript呼び出しコントローラが動作しない
コントローラメソッドを呼び出してセッション変数を消去し、彼のホームページにリダイレクトするためにJQueryを使用しました。
何らかの理由で、コールが失敗し、ホームページにリダイレクトされません。
404ページが見つかりません。呼び出しが失敗した理由がわからない:(
The following is the controller, router, and asp.net call
----------
**UserController.cs**
[HttpGet]
public IHttpActionResult ClearSessionAndCookies()
{
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
HttpContext.Current.Session.RemoveAll();
var host = Request.RequestUri.GetLeftPart(UriPartial.Authority);
return Redirect(host + "/cp");
}
**Routing**
RouteTable.Routes.MapHttpRoute(
name: "User",
routeTemplate: "api/User",
defaults: new { action = "ClearSessionAndCookies", controller = "User" }
);
**JavaScirpt**
function RedirectToWelcomePage() {
message = "Session expired. You will be redirected to home page.";
$('#sessionTimeoutTitle').text(message);
$('#sessionTimeoutModal').modal('show');
var url = 'api/User/ClearSessionAndCookies';
$.post(url, function (res) {
if (res.Success) {
sessionStorage.clear();
window.location.href = res.RedirectUrl;
}
}); }
ありがとう、マウリ。投稿の代わりに「取得」する必要があります。 –
はい、Ajax呼び出しと宣言は互換性が必要です – Mauri