我试图从服务器端向浏览器(如报告)发送多行文件(如日志文件)。当服务器响应只有一条线我都没有问题,但是当它的响应几行命令的eval(function("str")
)调用错误:未捕获的SyntaxError:意外的标记非法
的文件是这样的:
在服务器端读取多行文件并通过ajax响应将行发送到浏览器
10:00: 00 - 启动程序
10点00分10秒 - 开始执行
10点00分11秒 - 开始blablalbla
10点00分十四秒 - 开始blablalbla2
10时00分15秒 - 停止所有blablalbla
所以我做一个循环,累积的所有字符串
$strOut .= $content[$i];
我什至增加
. '\n';
,但没有结果。在调试器中,我在php和javascript中看到了响应字符串,但是当我调用eval(request.responseText)时,我得到上面的错误。
这是它的响应的字符串:如果我每次循环我这有一个后添加'\ n'
"myFunction('10:00:00 - Start program10:00:10 - Start execution10:00:11 - Start blablalbla10:00:14 - Start blablalbla210:00:15 - Stop all blablalbla')"
:
"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。现在它可以工作,但不是我想要的,但工作。
你试过nl2br吗? –
为什么你在响应时调用'eval'?响应JSON? – hindmost
你最终想做什么?用单独的行打印日志到浏览器? –