2015-11-28 90 views
2

我有一个看起来像这样的角度JS角不删除JSON前缀

$http.get('appTop/appTop.json').then(function successCallback(response) { 
    top.list=angular.fromJson(response.data); 
}, function errorCallback(response) { 
    console.log(response); 
}); 

top.list在别处定义和被请求的文件确实存在,但我每次运行请求时,它返回

一个HTTP请求
SyntaxError: Unexpected token)     angular.js 12520 

什么原因导致此错误?由于它来自angular.js,我无法弄清楚什么是错的。

  • jQuery的
  • jQuery Mobile的
  • angular.js
  • 角touch.js

以防万一它是相关的,我的剧本顺序加载我没有以任何方式更改angular.js文件,并使用angular.min.js文件加载它。

对于服务器,我使用的是本地托管的Node.js服务器。

它已经到了我的注意,这可能是部分原因是因为我的JSON文件,所以这里是:

)]}', 
[{ 
    "page": "/main/main.html", 
    "title": "Home" 
}, { 
    "page": "/server/server.html", 
    "title": "Server" 
}] 

开始)]}',由angular for security reasons

更新推荐

该错误似乎是因为角度不会删除建议的前缀。任何人都能看到为什么我根据已经获得的输入更新了代码片段,但仍然无法正确解析它。

+0

是否已确认在'appTop.json'内容是有效的JSON?你可以尝试使用[JSONLint](http://jsonlint.com/)。 –

+0

我刚刚检查,它是有效的JSON与角推荐的前缀)]}',\ n – Binvention

+0

如果我删除角推荐前缀它返回语法错误与ap而不是a)p是第一个字符不是a [或{ – Binvention

回答

1

您可能需要反序列化您收到的Json。

$http.get('appTop/appTop.json') 
    .then(function successCallback(response) { 
     top.list = angular.fromJson(response.data); 
    }, function errorCallback(response) { 
     console.log(response); 
    }); 

response.data部分可能只是需要response。这取决于你如何收到回应。

https://docs.angularjs.org/api/ng/function/angular.fromJson

+0

这似乎是正确的答案,但它仍然给我,错误 – Binvention

+0

它是新的1.5版本?我试图使用最新的稳定版本,它是1.4.8 – Binvention

+0

我真的不能告诉你它是否是新的。检索Json时,我一直不得不使用它。 –