gpt4 book ai didi

javascript - URL angular 2 typescript 网络应用程序不允许使用 405 方法

转载 作者:行者123 更新时间:2023-11-30 14:49:32 25 4
gpt4 key购买 nike

我正在开发一个带有 typescript 的 angular2+ 应用程序。我正在尝试为我的 Angular2 Kendo 网格之一提取数据并进行以下调用以获取填充网格的结果。在此网络调用中,我发送了一个状态 ID、skip 和 take 以及一个 Sort 数组,其中包含我要排序的字段和我希望它排序的方向。

下面是我调用网络服务的 typescript 代码:

  getUserRequests(statusId: number, skip: number, take: number, sort: SortDescriptor[]): Observable<GridResult> {
private getUserRequestsUrl = environment.serviceHostName + environment.serviceAppURL + '/api/Dashboard/GetUserRequestsByStatuses';

var headers = new Headers();
headers.append('Content-Type', 'application/json;');

return this.http.post(this.getUserRequestsUrl, JSON.stringify({ "Filter": { "Field": "StatusId", "Value": statusId, "Operator": "eq" },
"Skip": skip, "Take": take, "Sort": sort }), { headers: this.headers }).share()
.map((res: Response) => res.json())
.map(response => (<GridResult>{
data: response.Data ,
total: response.Count
}));

}

这是我永远不会被攻击的服务端代码。

[HttpGet]
public HttpResponseMessage GetUserRequestsByStatuses([FromBody] DataRequest model)
{
DataResponse<AngKendoGridDashboard> response =
BusinessAccess.GetUserRequestsByStatuses(model);
return CreateHttpResponse(response);
}

我面临的问题:出于某种原因,在进行此 Web 服务调用时出现错误提示

"ERROR Response with status: 405 Method Not Allowed for URL: http://localhost/Services/RequestService/api/Dashboard/GetUserRequestsByStatuses" I checked the request object which is being sent and here is what is looks like

{"Filter":{"Field":"StatusId","Value":2,"Operator":"eq"},"Skip":0,"Take":5,"Sort":[{"field":"CreatedDate","dir":"desc"}]}

我还在响应正文中看到这条消息:

{"Message":"The requested resource does not support http method 'POST'."}

我从周五开始就一直在研究这个问题,但一直想不出解决方案。任何帮助表示赞赏。我认为这可能与我如何通过 typescript 发送请求对象有关。

最佳答案

错误表明方法 POST 不受支持,但该操作具有 HttpGet 属性。

您需要将 HttpGet 更改为 HttpPost

[HttpPost]
public HttpResponseMessage GetUserRequestsByStatuses([FromBody] DataRequest model)
{
DataResponse<AngKendoGridDashboard> response =
BusinessAccess.GetUserRequestsByStatuses(model);
return CreateHttpResponse(response);
}

您也可能会丢失 [FromBody] 属性,它是给定参数类型的默认值。

关于javascript - URL angular 2 typescript 网络应用程序不允许使用 405 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com