You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC C#:点击提交按钮未处理请求却跳转至登录页问题咨询

问题分析与解决方案

根据你描述的情况——点击按钮后JS代码正常执行,但页面仍自动跳转至登录页,核心原因大概率是PDF下载请求未通过身份验证,后端返回401状态并触发登录页重定向,也可能存在JS语法错误或未处理的默认行为,以下是具体解决步骤:

1. 修复JS代码语法错误

你的JS代码缺少闭合的});,这会导致代码执行异常,可能引发意外行为:

$('#DownloadPDF').click(function (e) {
    alert("clicking download");
    // PDF下载逻辑
}); // 补上这个闭合括号

2. 阻止可能的表单默认行为(若按钮在表单内)

即使按钮是type="button",如果嵌套在<form>标签中,某些场景下仍可能触发表单提交。可以在事件回调中明确阻止默认行为:

$('#DownloadPDF').click(function (e) {
    e.preventDefault(); // 阻止默认行为
    alert("clicking download");
    // PDF下载逻辑
});

3. 确保PDF下载请求携带身份验证信息

如果系统基于Cookie验证,要保证请求为同域且自动携带Cookie;如果是Token验证,需在请求头中附加授权Token:

  • 示例(jQuery Ajax请求携带Token处理PDF下载):
$('#DownloadPDF').click(function (e) {
    e.preventDefault();
    alert("clicking download");
    $.ajax({
        url: '/your-pdf-download-url',
        method: 'GET',
        headers: {
            'Authorization': 'Bearer ' + localStorage.getItem('authToken') // 根据实际验证方式调整
        },
        xhrFields: {
            responseType: 'blob' // 处理二进制PDF文件
        },
        success: function(blob) {
            // 执行PDF下载操作
            const url = window.URL.createObjectURL(blob);
            const a = document.createElement('a');
            a.href = url;
            a.download = 'document.pdf';
            document.body.appendChild(a);
            a.click();
            window.URL.revokeObjectURL(url);
            document.body.removeChild(a);
        },
        error: function(xhr) {
            console.log('请求状态:', xhr.status); // 排查是否返回401未授权状态
        }
    });
});

如果请求返回401状态码,说明身份验证失效,需要检查:

  • 用户会话是否已过期
  • 请求是否正确携带了验证凭证(Cookie/Token)

4. 检查后端重定向逻辑

确认后端处理PDF下载请求时,仅在用户会话完全失效的情况下才触发登录页重定向,避免对有效会话的请求误触发跳转。

内容的提问来源于stack exchange,提问作者Arturo Tiangco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:25:18