【问题标题】:Query: Response does not match configured parameter查询:响应与配置的参数不匹配
【发布时间】:2016-02-29 21:09:26
【问题描述】:

我收到响应错误,请任何人尝试解决我的问题。我正在尝试解决这个问题,但我没有解决这个问题。请帮我。 提前谢谢

$scope.init = {};
var Call = $resource('../api/Home', {}, { query: { method: 'POST', isArray: false} });
        $scope.init = function () {
            //alert("hi");
            $scope.selected = "";
            var x = $('#txtSearch').val();
            var _ReqObj = new Object();
            _ReqObj.id = x;
            _ReqObj.Meth = "GJ";
            Call.query({}, _ReqObj,
             function (response) {
                 alert(response);
                 alert(_ReqObj);
                 if (response == '') {
                     // alert('no data');

                     window.location.replace("index.html");
                 }
                 else {
                     //$scope.click = response;
                     $scope.init = response;

                 }
             },
                        function (error) {
                            window.location.replace("index.html");

                        }
                     );
        };

【问题讨论】:

  • 你检查过这个链接了吗? docs.angularjs.org/error/$resource/…
  • 能否请您更改问题的标题?错误链接没有帮助。您能否在浏览器的开发控制台中单击错误链接,然后从 angular-page 复制文本? :)

标签: angularjs angular-resource


【解决方案1】:

错误消息说:“预期的响应包含一个对象但得到一个数组”

这意味着:您的请求 (Call.query) 确实需要一个对象(您正在设置 isArray: false)。但是服务器发送一个数组。所以服务器没有发送函数期望的内容!

我想给你一些提示:

  1. 为什么要使用查询?查询通常用于从服务器获取数组,而不是单个对象。你为什么要使用查询?

  2. 您真的想要一个对象还是想要一个对象列表?

  3. 服务器发送什么?在浏览器中打开开发控制台(在 Chrome 中为 ctr+alt+I),然后单击 Network 选项卡。单击请求 (../api/Home) 并检查来自服务器的响应。您应该会看到服务器作为对您的请求的响应而发送的 json 对象或数组。

【讨论】:

  • 感谢您向我提问。这个问题对我很有帮助。我得到了确切的答复。
猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 2019-01-24
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多