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

405错误-UnsupportedApiVersion:API版本1.0不支持POST请求求助

问题分析

405错误的核心原因是前端请求的URL与后端实际支持的有效端点不匹配,同时结合错误提示里的UnsupportedApiVersion,还存在API版本前缀缺失、路由参数名不统一的问题。你在Postman中测试的有效端点是/api/v1/sites/{id}/syncWithDataFactory/{activate},但当前代码里的前后端路由都和这个正确路径不一致。


修复步骤

1. 修正前端请求路径(site.service.ts)

将路由模板修改为和Postman测试通过的端点完全一致的结构,补充API版本前缀:

private routes = {
    // 修正路径结构,添加/api/v1前缀,对齐有效端点
    IsDFSynchronized: '/api/v1/sites/{:siteId}/syncWithDataFactory/{:isDFSynchronized}',
};

datafactoryIsSynchronized(siteId: number, isSyncValue: boolean): ng.IPromise<boolean> {
    const url = this.routes.IsDFSynchronized
        .replace('{:siteId}', siteId.toString())
        .replace('{:isDFSynchronized}', isSyncValue.toString());
    return this.restService.post(url, null).then((response: any) => {
        console.log('THE RESPONSE IS', response.data);
        return response.data;
    }).catch((response: any) => {
        return this.$q.reject(response);
    });
}

2. 修正后端路由与参数绑定(SiteController.cs)

  • 补充API版本前缀到路由中
  • 对齐路径结构为sites/{siteId}/syncWithDataFactory/{isSynchronized}
  • 确保路由参数名与方法参数名统一(原代码路由参数是isDFSynchronized,方法参数是isSynchronized,存在不匹配)
  • 若后端启用了API版本控制,需添加[ApiVersion("1.0")]特性
[ApiVersion("1.0")] // 启用API版本控制时必须添加
[AcceptVerbs("POST")]
// 修正路由路径,对齐有效端点,统一参数名
[Route("api/v1/sites/{siteId}/syncWithDataFactory/{isSynchronized}")]
public bool UpdateDataFactorySync([FromUri] int siteId, [FromUri] bool isSynchronized)
{
    var connectedUser = this.permissionService.GetConnectedUser();
    this.permissionService.CheckUserPermission(connectedUser, PermissionConstant.EditDataFactorySync);
    bool result = this.siteService.UpdateDataFactorySync(connectedUser.CurrentEnvironment, siteId, isSynchronized);
    if (result)
    {
        this.applicationDataAccess.LogAction(connectedUser.CurrentEnvironment, connectedUser.Email, LogActionConstants.Action.EditDataFactorySync, string.Format(LogActionConstants.Message.EditDataFactorySync, siteId, isSynchronized));
    }
    return result;
}

3. 验证核心匹配项

  • 确认前端调用的POST方法与后端[AcceptVerbs("POST")]注解一致
  • 检查后端是否正确配置了API版本控制的路由规则(比如ApiVersioning中间件),确保v1版本的端点能被正确识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:25:28