ajax调用的状态405(ASP.NET Core)

时间:2017-11-30 14:00:10

标签: .net ajax asp.net-core

我正在使用服务堆栈,我想进行GET调用以更新表,但我得到状态405,尽管API方法是GET。 这是ajax调用(planning.cshtml):

$("#search").click(function() {
            $.ajax({
                url: "/api/planning/?handler=Planning",
                type: "GET",
                contentType: false,
                processData: false,
                data: $("#planning-search-form").serialize(),
                beforeSend: function (xhr) {
                    xhr.setRequestHeader("XSRF-TOKEN",
                        $('input:hidden[name="__RequestVerificationToken"]').val());
                },
                success: function(result) {
                    console.log(result);
                },
                error: function (error) {
                    var msg = '';
                    if (error.status === 0) {
                        msg = 'Not connect.\n Verify Network.';
                    } else if (error.status == 404) {
                        msg = 'Requested page not found. [404]';
                    } else if (error.status == 500) {
                        msg = 'Internal Server Error [500].';
                    }
                    toastr.error(msg);
                }
            });
        });

这是它应该达到的方法(planning.cs):

 public IActionResult OnGetPlanning([FromBody] GetPlanningViewModel viewModel)
    {
        return Redirect("/"); //for testing purposes
        return PostJsonAction(() =>
        {
            var response = ServiceClient.Get(new GetOrderPlanning
                {
                    YearFrom = viewModel.YearFrom,
                    WeekFrom = viewModel.WeekFrom,
                    YearTo = viewModel.YearTo,
                    WeekTo = viewModel.WeekTo,
                    Customers = viewModel.Customers,
                    Orders = viewModel.Orders,
                    Supervisor = viewModel.Supervisor
                }
            );

            if (response.IsNotEmpty())
            {
                return new JsonResult(new {Success = true, response.Result, ActionMessage});
            }

            return new JsonResult(new
            {
                Success = false,
                ErrorMessage = "Not defined"
            });

        });
    }

以下是API类的一行:

    [Route("/planning", "GET", Summary = "Gets order planning")]

问题在于,当我复制调用的格式化链接时,一切都很好,我得到了数据,但是当我进行ajax调用时,我得到405状态错误。任何想法如何解决这个问题?

0 个答案:

没有答案