在我看来,我正在通过AngularJS Service加载一些数据。这适用于现代浏览器,但在Internet Explorer 9及更低版本中无法正常运行。当我调用Controller时(通常)返回JSON,如
[{"id":2,"title":"Product","slug":"product","short_description"...}]
在IE9中打开“保存”-dialog。因此,服务中的调用返回当前HTML站点的标记。看起来像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=9" />
...
控制器中的方法调用如下所示:
Product.get()
.success(function(data) {
$scope.products = data;
$scope.loading = false;
})
.error(function(msg) {
$log.error(msg);
});
Product.get()
- 服务基本上只是$http.get('http://localhost:8000/api/products')
更新:this.JSON
返回false ...你能建议一个解决方法吗?
提前致谢!
答案 0 :(得分:0)
在解析json时,IE9比现代浏览器更加挑剔。
可能需要在服务器上对其进行序列化时转义HTML。
以C#为例,这可以通过Newtonsoft实现 StringEscapeHandling.EscapeHtml(http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_StringEscapeHandling.htm)
希望这有帮助!