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

ASP.NET Core MVC 3 Identity下[Authorize]接口GET请求403致DataTables报错如何解决

解决方案

方案1:调整Ajax配置携带身份凭证(优先推荐,GET请求不建议传递反伪造令牌)

如果你的项目使用Cookie身份认证,给Ajax请求添加xhrFields: { withCredentials: true }配置,同域/跨域请求会自动携带认证Cookie,无需手动传递令牌:

var urlCompleto = ".....";
$.ajax({
    url: urlCompleto,
    method: "GET",
    contentType: 'application/json',
    // 新增配置
    xhrFields: {
        withCredentials: true
    }
}).done(function (data) {
    // 处理返回数据
}).fail(function () {
    // 处理异常
})

如果你的项目使用JWT身份认证,将令牌放到Authorization请求头中即可:

// 示例从本地存储读取JWT令牌,可根据你的项目实际存储位置调整
const accessToken = localStorage.getItem('accessToken');
var urlCompleto = ".....";
$.ajax({
    url: urlCompleto,
    method: "GET",
    contentType: 'application/json',
    // 新增配置
    headers: {
        'Authorization': 'Bearer ' + accessToken
    }
}).done(function (data) {
    // 处理返回数据
}).fail(function () {
    // 处理异常
})

方案2:强制在GET请求中传递反伪造令牌的配置方法

如果你的项目明确要求GET请求也需要校验反伪造令牌,需要同时调整前端和后端配置:

  1. 前端修改:将令牌拼接为URL查询参数,或者放到指定请求头中
var token = $('input[name="__RequestVerificationToken"]').val();
var urlCompleto = ".....?__RequestVerificationToken=" + encodeURIComponent(token);
$.ajax({
    url: urlCompleto,
    method: "GET",
    contentType: 'application/json',
    // 也可以选择放到请求头中,二选一即可
    // headers: {
    //     'RequestVerificationToken': token
    // }
}).done(function (data) {
    // 处理返回数据
}).fail(function () {
    // 处理异常
})
  1. 后端修改(以ASP.NET Core为例):调整反伪造校验规则,支持从查询参数/请求头读取令牌,同时开启GET请求校验
// Program.cs中添加反伪造配置
builder.Services.AddAntiforgery(options =>
{
    options.FormFieldName = "__RequestVerificationToken";
    options.HeaderName = "RequestVerificationToken";
});

// 控制器/接口上的反伪造校验特性替换为[ValidateAntiforgeryToken],默认[AutoValidateAntiforgeryToken]不会校验GET请求

补充说明

GET请求本身属于幂等请求,常规场景下不需要校验反伪造令牌,优先排查身份认证凭证是否正确携带即可解决403报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:06:02