为什么我使用WebMessageBodyStyle.WrappedRequest获取“Method not allowed”?

时间:2015-11-27 22:12:50

标签: jquery wcf asp.net-mvc-4

我正在尝试使用jquery将多个参数传递给我的wcf服务。

如果服务操作没有/一个参数,但是如果我添加两个或更多,我开始使用“不允许的方法”,一切都很好。

我正在使用GET方法,因为我将允许从其他域使用该服务。

任何想法?

[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public List<Pair> GetPair(int quantity, string password)
{}

<script>
    $(document).ready(function() {

        $("#aService").click(function() {
            alert("Handler for .click() called.");

            $.ajax
            ({
                type: "GET",
                url: "/FightService.svc/GetPair",
                contentType: "text/plain, charset=utf-8",
                data: "quantity=1&password=somethinghere",
                processData: true,
                success: function (data, status, jqXHR) {
                    alert("data..." + data);
                    alert("length..." + data.length);
                    alert("thename..." + data[0].TheName);

                },
                error: function (xhr) {
                    alert(xhr.responseText);
                }
            });


        });

    });
</script>

1 个答案:

答案 0 :(得分:0)

尝试以下更改

[WebInvoke(Method = "GET", UriTemplate="GetPair?quantity={quantity}&password={password}")]

然后致电

$.ajax
        ({
            type: "GET",
            url: "/FightService.svc/GetPair?quantity=1&password=somethinghere",
            contentType: "text/plain, charset=utf-8",
            processData: true,
            success: function (data, status, jqXHR) {
                alert("data..." + data);
                alert("length..." + data.length);
                alert("thename..." + data[0].TheName);

            },
            error: function (xhr) {
                alert(xhr.responseText);
            }
        });