2017-08-02 9 views
0

私は<script>タグをajaxレスポンスから削除しようとしています。私は、サーバーからjsonエンコードされた配列を返しています。しかし、それには<script>タグも含まれています(私のアプリケーションから来ています。サーバ側からは削除できません)。他のデータを削除するajaxレスポンスからスクリプトタグとCSSリンクを削除する

$.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()のように見えますが["Ball > Backs > Flags","Baseball > Backs > 3X5 Flags","Baseball > Backs >としてJSON文字列を返しています。

私は間違っていますか?誰でも私にこれを解決させる手伝いができますか?

ありがとうございます。

+0

:?ここ

デモを見ますか –

答えて

0

あなたはajax関数で間違いを犯します。これを試してみてください:

$.ajax({ 
    url: 'test.php', 
    method: 'POST', 
    data: {}, 
    dataType: 'json', 
    success: function(data) { 
     console.log(data); 
    } 
}); 
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); 
    } 
}); 
+0

答えをありがとう。これを試してみた。 jsonの文字列が正しいようになりました。しかし、CSSの 'link'は削除されていません。 – Jenz