我已经制作了一个快速的ajax驱动页面,用于粘贴一些文本并运行yuicompressor。输出效果很好,但是,当我将stdout发送回我的页面时,我遇到了<
字符处的数据切断问题。例如,当我在此运行压缩器时:
function Enum(values){
for( var i = 0; i < values.length; ++i ){
this[values[i]] = i;
}
return this;
}
我得到一个压缩版本,没问题。现在,当我将此信息发送到我的页面时:
exec(command, function(err, stdout, stderr) {
console.log(stdout);
res.writeHead(200, {'content-type': 'text/plain'});
//res.write(decodeURIComponent(escape(stdout)));
//res.write(qs.escape(stdout));
res.write(stdout);
res.end('\n');
});
这始终会导致发送的数据在<
处被切断,从而导致:
function Enum(a){for(var b=0;b
console.log(stdout)
显示完美,所以直到它被发送到客户端才被切断。
当我尝试编码时,我能够将所有输出到我的页面全部转义出来,但是在前端解码会导致同样的问题斩断。
这是ajax电话:
if(ready) {
$.ajax('/get' + args + '/', {
type: 'GET',
dataType: 'text',
success: function(data) { $('pre').html(data) },
error: function() { console.log('error retrieving data') }
});
}
答案 0 :(得分:2)
看起来你的困难在于你告诉jQuery使用一块JavaScript作为HTML,并且它在第一个HTML元字符<
处“切断”。 pre
标记的内容仍然是HTML,只是对空格的处理方式不同。致电$('pre').text(data)
,您应该没问题。