express输出一段JS到前端执行(唉)

clipboard.png
上面这个图是在PHP里面的做法,请求过来,返回一个JS执行到前端(其实就是输出一个JS文件吧,我是这么理解的)

clipboard.png

上面是我在express中的,输出的JS没有在前端执行

clipboard.png

捉包看到类型已经是JS了

clipboard.png

里面的内容是一个alert,但是并没有执行
(这个操作在PHP是可行的)

阅读 5.9k
5 个回答

你输出的这个信息 对前端来说就是一个字符串。想要前端执行,就需要在前端接到响应后执行 eval() 函数,传入你收的代码

这个事不要这么做。你这么干,安全问题很大。
如果说你想要弄一段代码在前端执行,可以在前端先把要执行的代码写好,然后在服务端返回一个标志,当前端收到这个字段,就执行指定的代码。

const http = require('http');

http.createServer(async (req, res) => {
    
    res.setHeader('Content-Type', 'text/html')
    res.end("<script>alert('ok')</script>");
    
}).listen(8000)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题