在服务器端读取多行文件,并通过ajax响应将行发送到浏览器

read multiline file at server side and send lines to browser via ajax response

本文关键字:响应 ajax 浏览器 读取 服务器端 文件      更新时间:2023-09-26

我试图从服务器端发送多行文件(如日志文件)到浏览器(如报告)。当服务器响应只有一行我没有问题,但当它响应几行命令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"。