在IE9中通过Angular Service加载JSON失败

时间:2015-05-19 23:31:57

标签: json angularjs internet-explorer-9

在我看来,我正在通过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 ...你能建议一个解决方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

在解析json时,IE9比现代浏览器更加挑剔。

可能需要在服务器上对其进行序列化时转义HTML。

以C#为例,这可以通过Newtonsoft实现 StringEscapeHandling.EscapeHtml(http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_StringEscapeHandling.htm

希望这有帮助!