2015-11-28 148 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時,我一直不得不使用它。 –