2017-08-30 31 views
0

我使用AngularJS 1.6.4,我得到關於$ SCE此錯誤:

Error: [$sce:itype] http://errors.angularjs.org/1.6.4/ $sce/itype?p0=html Trace de la pile : L/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js:6:425 [email protected]https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js:155:46 [...]

主控制器

(function(angular) { 
    'use strict'; 
    angular.module('fooModule') 
    .controller('MainCtrl', ['$scope', '$q', '$http', '$sce', function ($scope, $q, $http, $sce){ 
      ... 
      $q.all([ 
      ... 
     ]).then(function(responses) { 
      $scope.send = function(){               
       var data = { 
         ... 
        }; 

        $http({ 
         url: 'file.php', 
         method: "POST", 
         data: $.param(data), 
         headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
        }).then(function successCallback(response) { 
         $scope.dataResponse = $sce.trustAsHtml(response); 
        }, function errorCallback(response) { 
         console.dir(response); 
        }); 
       } 

      }; 
     }); 
      ... 
    }]); 
})(window.angular); 

我不明白是什麼意思這個錯誤。有人可以解釋我?我該如何解決它?

+0

請張貼你的'response' –

回答

2

$sce:itype當您是時,發生錯誤嘗試信任需要字符串的內容中的非字符串值。


在成功回調中,response對象可能不是HTML代碼。因此,使用$sce嘗試將其信任爲HTML時失敗。

檢查response對象,可能有一個response.data包含您的HTML代碼。