我试图从ajax响应中删除<script>
标记。我从服务器返回一个json编码的数组。但它也包含一些<script>
标签(来自我的应用程序。无法从服务器端删除它)。
$.ajax({
url: 'test.php',
type: 'POST',
data: {},
dataType: 'html',
success: function(data) {
console.log("text : "+$(data).find("script,style").remove().end().text());
}
});
我尝试了上面的代码。它正在删除标签。但是我的json编码数组中最后一项的一部分也被删除了。
test.php中的字符串看起来像
<script src='//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js' type='text/javascript'></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
["Ball > Backs > Flags","Baseball > Backs > 3X5 Flags","Baseball > Backs > Action"] // like this it contains about 50 items.
$(data).find("script,style").remove().end().text()
将json字符串作为["Ball > Backs > Flags","Baseball > Backs > 3X5 Flags","Baseball > Backs >
返回。
我做错了什么?任何人都可以帮我解决这个问题。
提前致谢。
答案 0 :(得分:0)
你在ajax函数中犯了一个错误。试试这个:
$.ajax({
url: 'test.php',
method: 'POST',
data: {},
dataType: 'json',
success: function(data) {
console.log(data);
}
});
答案 1 :(得分:0)
尝试使用此代码:
此处参见演示:
https://jsbin.com/sazifefute/edit?html,output
$.ajax({
url: 'test.php',
type: 'POST',
data: {},
dataType: 'json',
success: function(data) {
var rex = /<([^ >]+)[^>]*>.*?<\/\1>|<[^\/]+\/>/ig;
data = data.replace(rex , "");
console.log("text : "+ data);
}
});
答案 2 :(得分:0)
只需使用replace()函数从成功仓库中删除“脚本”。
data.replace('script',“”);