我现在一直在使用$resource
,但使用JSON
返回值似乎很棘手。我尝试了很多解决方案,但似乎总是将它作为一个对象返回,而不是理想的输出,如下图所示。
当我验证数据是邮递员时,我会收到这样的信息:
{
"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
}
});