Breeze EntityQuery.from()withParameters POST到API不起作用

问题描述 投票:0回答:1

我有这样的代码和平:

function getSopMatches(data) {

        return EntityQuery.from('GetSopMatches')
            .withParameters({
                $method: 'POST',
                $encoding: 'JSON',
                $data: data
            })
            .using(manager).execute()
            .then(success)
            .catch(_queryFailed);

        function success(response) {
            return response.results;
        }
    }

它通过这个来调用:

playerService.getSopMatches({ playerId: vm.player.id, competitionId: career.competitionId, seasonId: career.seasonId, teamId: career.teamId }).then(function (results) { //do something with it });

在我的MVC控制器(BreezeController)中,方法如下:

[HttpPost]
    public IQueryable<object> GetSopMatches(SopMatch sop)
    {
        //this method is not called, I get a 405 Method not Allowed
    }

不知何故,实际调用是GET,而不是POST,因此我得到405 Method not Allowed错误消息。

我在同一个项目(客户端javascript / breeze调用和服务器端mvc控制器方法)中有其他代码可以正常工作。

有人知道我做错了什么,或者为什么改成GET方法?

post breeze http-status-code-405
1个回答
1
投票

经过一天的尝试和失败,我找到了解决方案。

似乎在角度控制器中我注入微风,这导致了问题。当breeze注入控制器或服务时,它会弄乱POST的URL,因此您会收到405(因为URL已更改)。

© www.soinside.com 2019 - 2024. All rights reserved.