因此,我看到很多人想知道如何执行通过ajax返回的JS代码。我希望我有这个问题。我的JS可以执行,但我也不要!
使用jQuery 1.4.2,我正在执行GET请求:
$.ajax({
url:'/myurl/',
type:'GET',
success:function(response){
$('body').html(response);
}
});
响应类似于:
<p>Some content</p>
<script>alert("hi!");</script>
每当触发成功回调并将响应注入(inject)DOM时,警报代码就会触发!我不希望那样发生。我该怎么做才能防止这种情况?
最佳答案
如果您无法修改响应,请尝试“替换” <script>
标签:
"<script>alert('hi');</script>".replace(/<(\/?script)/gi, "<$1");
这应该转义标签,使它们显示为纯文本而不是执行。
相关链接