gpt4 book ai didi

javascript - 响应与配置的参数不匹配 :

转载 作者:行者123 更新时间:2023-12-02 17:26:07 27 4
gpt4 key购买 nike

我在 Angular $resource 中收到以下错误: error description

Error: error:badcfg
Response does not match configured parameter:
Error in resource configuration for action `array`. Expected response to contain an object but got an {2}

我按如下方式初始化了 ng 应用程序:

var appRoot = angular.module('smapp', ['ngRoute', 'ui.bootstrap', 'ngResource']);

服务:

appRoot.factory('ProgramsResource', function ($resource) {
return $resource('Home/Program', {}, { Program: { method: 'get', isArray: false } })
});

在我的 Controller 中:

appRoot.controller('ProgramCtrl', function ($scope, ProgramsResource) {
$scope.searchPrograms = function () {
$scope.Programs = ProgramsResource.query(
{
TotalItems: $scope.TotalItems,
ItemsPerPage: $scope.ItemsPerPage,
PageNo: $scope.CurrentPage
});
};


$scope.TotalItems = 175;
$scope.ItemsPerPage = 20;
$scope.CurrentPage = 1;
$scope.searchPrograms();
});

我从服务器发送的 Json 响应:

{"TotalItems":175,"ItemsPerPage":20,"PageNo":5,"List":[{"Code":"MATH2014","Name":"Name1","Tags":"Tag1,Tag2"},{"Code":"MATH2015","Name":"Name2","Tags":"Tag1,Tag2"}]}

Angular $response 会引发上述 json 的错误

但是如果我不在 json 中发送“List”数组并按如下方式发送简单的 json,则一切正常:

[{"TotalItems":0,"ItemsPerPage":0,"PageNo":0},{"TotalItems":0,"ItemsPerPage":0,"PageNo":0}}]

我是 Angular 新手,不知道我到底做错了什么。

最佳答案

而不是做

$scope.Programs = ProgramsResource.query(

使用

$scope.Programs = ProgramsResource.get(

query 函数期望响应是一个数组,而 get 函数期望响应是一个对象。由于您要返回对象,请使用get

查询函数的默认设置是isArray:true。此标志有助于 Angular 将您的响应反序列化为对象或数组。请参阅resource documentation .

另请注意:当您更改如下所示的 query 函数的默认设置时,如果未将 isArray 定义为 true,您将遇到此错误。因此,当您更改 query 的默认设置时,请务必添加 isArray: true:

var res = $resource('/api/userinfoes/:Id', { Id: "@Id" },
{
'query': {
method:'GET',
headers: {
'Authorization': 'Bearer ' + token
},
isArray:true}
});

关于javascript - 响应与配置的参数不匹配 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26093003/

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