Angular 1.x:$ resource JSON作为一个奇怪的对象返回

时间:2017-11-11 08:29:49

标签: javascript angularjs json ajax angular-resource

我现在一直在使用$resource,但使用JSON返回值似乎很棘手。我尝试了很多解决方案,但似乎总是将它作为一个对象返回,而不是理想的输出,如下图所示。

enter image description here

当我验证数据是邮递员时,我会收到这样的信息:

{
  "examples": [
    {
      "text": "their pet cat"
    }
   ],
  ...            

有了这个,我知道数据正在正确发送。但是,我尝试使用$resource正确地恢复数据的每个解决方案都给了我在上图中看到的奇怪对象。

我尝试了很多,但我相信这些是最接近的:

尝试一:

jsonpquery: { method: 'JSONP', params: {callback: 'JSON_CALLBACK'}, isArray: true }

尝试两个

return $resource('myBackend.php?action=word',
  {}, {
  query: { method: "GET", isArray: false }
});

尝试3:

return $resource('myBackend.php?action=word',
  { get: { method: "JSON", isArray: false}});

这是在工厂,我称之为:

dictionaryFactory.getWord('cat')
  .query().$promise.then(function(value) {
    console.log('value value', typeof value);
    console.log('value value',  value);
});

我很确定我没有正确设置$resource返回功能 但经过几天的网上搜索和尝试解决方案,我认为我不明白该怎么做。

我尝试过this post的答案,但无法解决问题。数据恢复原状。

更新:我现在也试过这个:

query: {
  method: 'GET',
  isArray: true,
  transformResponse: function(data) {
    return angular.fromJson(data).items;
  }
}

然而,这只是在控制台中给出了以下错误:

  

JSON.parse

位置7305的JSON中出现意外数字

我知道数据不是问题,因为我正在使用来自牛津的API:https://developer.oxforddictionaries.com/d

更新:

我读了一些并尝试了这个但是我得到了错误

  

位置7305的JSON中出现意外数字

return $resource('myBackend.php?action=word', {},
   {
       jsonpquery: {
         method: 'get',
         dataType: 'json',
         transformResponse: function(data, headers){
            return JSON.parse(data);
        }
       }
});

我也尝试了这个,但是出于某种原因然后我得到了403.我不明白,因为当它是get请求时它会返回奇怪的字符对象。

return $resource('backend.php?action=oxford', {}  {
       jsonpquery: {
         method: 'JSON',
         isArray: true
       }
});

0 个答案:

没有答案