我尝试将多行文件(如日志文件)从服务器端发送到浏览器(如报告)。当服务器只响应一行时我没有问题,但是当它响应多行时命令eval(function("str")
)调用错误:未捕获语法错误:意外标记ILLEGAL
文件是这样的:
10:00:00 - 启动程序
10:00:10 - 开始执行
10:00:11 - 开始blablalbla
10:00:14 - 开始blablalbla2
10:00:15 - 停止所有blablalbla
所以我制作一个循环并累积所有字符串
$strOut .= $content[$i];
我甚至添加了
. '\n';
但没有结果。在调试器中,我在php和javascript中看到响应字符串,但是当我调用eval(request.responseText)时,我收到上面的错误。
这是一个响应的字符串:
"myFunction('10:00:00 - Start program10:00:10 - Start execution10:00:11 - Start blablalbla10:00:14 - Start blablalbla210:00:15 - Stop all blablalbla')"
如果我在每次循环后添加了' \ n' ,我就得到了这个:
"myFunction('10:00:00 - Start program\n10:00:10 - Start execution\n10:00:11 - Start blablalbla\n10:00:14 - Start blablalbla2\n10:00:15 - Stop all blablalbla')"
然后在代码split("\n")
中,但它之前调用错误。
编辑:我的临时答案是创建单独的功能,以避免eval。现在它有效,但不是我想要的,但是有效。
答案 0 :(得分:0)
如果要将\ n用作新行分隔符,则需要使用双引号将其解释为新行 - " \ n"。