0

我有一个 AngularJS 应用程序,它解析主要来自电子邮件的 HTML。在某些情况下 data-bind-html 会抛出 Parse Error 但并非所有情况。我一直无法确定原因。

有谁知道可能导致错误的某些类型的标记或语法?

这是一个文件的示例,它会绊倒它:



我收到以下错误消息...:

-------------------------------------------------- ---------------------- 服务器遇到了阻止它的意外情况

满足请求。

HTTP_Status = 500(内部服务器错误)

网址 =

----------------------------------------- 请求标头 -------- ---------------------------------- POST /ss/servlet/FooServlet/ HTTP/1.1 接受:接受:/主机:mydomain.org 内容长度:141 用户代理:FooBar/2.1.94 编译指示:无缓存缓存控制:无缓存内容类型:应用程序/x-www-form-urlencoded;charset="utf-8" 连接:保持活动 Cookie:BIGipServerpool_cookie_apps_ss_8188=rd860o00000000000000000000ffff0a0ad0aco8188;JSESSIONID=5215F941A173B6127E9A95B3E99E3A74

----------------------------------------- 响应头 -------- ---------------------------------- HTTP/1.1 500 内部服务器错误服务器:Apache-Coyote/1.1 Set- Cookie:JSESSIONID=A9B7C98E5359D961DC8958F87CCCF49E;Path=/ss Content-Disposition:附件;filename="spreadsheet.csv" 内容描述:电子表格.csv 内容传输编码:二进制内容类型:应用程序/csv;charset=ISO-8859-1 传输编码:分块日期:2013 年 3 月 6 日,星期三 18:格林威治标准时间 46:19 连接:关闭

-------------...

4

1 回答 1

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, '');
  };
});
于 2013-04-30T14:30:59.343 回答