我有一个解析HTML的AngularJS应用程序,主要来自电子邮件。在某些情况下,data-bind-html将抛出Parse Error但不是所有情况。我一直无法确定原因。
是否有人知道可能导致错误的某些类型的令牌或语法?
以下是一个文件的示例:
,
我收到以下错误消息......:----------------------------------------------- -------------------------服务器遇到阻止
的意外情况履行请求。
HTTP_Status = 500(内部服务器错误)
网址=
-----------------------------------------请求标题 ----------------------------------------- POST / ss / servlet / FooServlet / HTTP /1.1接受:接受: / 主持人:mydomain.org内容长度:141 User-Agent:FooBar / 2.1.94 Pragma:no-cache Cache-Control:no-cache 内容类型:application / x-www-form-urlencoded;字符集= “UTF-8” 连接:Keep-Alive Cookie: BIGipServerpool_cookie_apps_ss_8188 = rd860o00000000000000000000ffff0a0ad0aco8188; JSESSIONID = 5215F941A173B6127E9A95B3E99E3A74
----------------------------------------- Response Headers ----------------------------------------- HTTP / 1.1 500内部服务器错误服务器: Apache-Coyote / 1.1 Set-Cookie: JSESSIONID = A9B7C98E5359D961DC8958F87CCCF49E;路径= / SS 内容 - 处理:附件;文件名= “spreadsheet.csv” 内容描述:spreadsheet.csv Content-Transfer-Encoding:二进制 Content-Type:application / csv; charset = ISO-8859-1 Transfer-Encoding: chunked日期:2013年3月6日星期三18:46:19 GMT连接:关闭
-------------...
答案 0 :(得分:0)
电子邮件可能包含大量任意编码和无效HTML,例如<email@domain.com>
。为了消除解析错误,我实现了自己的过滤器,它在通过ngSanitize / bind-html之前生效。
ng-bind-html="obj.emailContent | sanitizeEmail"
myModule.filter('sanitizeEmail', function() {
return function(input) {
return input.replace(/<[\w-]*\.[\w-]*>/g, '').replace(/<[\w\.\$-]+[\:@].*>/g, '');
};
});