我试图从服务器端发送多行文件(如日志文件)到浏览器(如报告)。当服务器响应只有一行我没有问题,但当它响应几行命令eval(function("str")
)调用错误:Uncaught SyntaxError: Unexpected token ILLEGAL
文件是这样的:
10:00:00 - Start program
10:00:10 -开始执行
10:00:11 -启动blablalbla
10:00:14 - Start 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。现在它工作了,但不是我想要的,但工作了。
如果你想使用'n作为新的行分隔符,你需要使用双引号来解释为新的行- "'n"。