2016-08-27 67 views
0

使用JSON API獲取數據時遇到的問題:如何使用JSON API從獲取的json數據中刪除整個腳本標記內容?

我使用的請求方法是:「 http://www.example.org/?json=get_post&post_id=47

但是返回的JSON文件帶有一個<script>塊,這引起了一個問題:

  <script> 
     document.cookie="kentopvc_22238=yes"; 
     </script> 

        <script> 
     document.cookie="kentopvc_22238=yes"; 
     </script> 

     {"status":"ok","post":{"id":22238,"type": ........... } 

error information

+1

的錯誤是與響應該請求的服務器應用程序。它是你的嗎? – trincot

+0

服務器正在向您返回格式錯誤的JSON內容。具有「{..}」的內容的最後一部分看起來像它應該返回的實際內容,但不包含那些HTML標籤的最高位。你擁有服務器嗎?如果你不這樣做,那麼你可能需要通過從字符串 –

+0

中捕獲'{...}'JSON來解決它。我會聯繫誰擁有該站點,並要求他們修復他們的API – NullUserException

回答

1

如果您無法訪問返回格式錯誤的數據的API,則需要捕獲字符串wit h正則表達式,然後解析它。然後

var jsonString = response.match(/^{.*$/m)[0] 
var parsedJson = JSON.parse(jsonString) 

正則表達式的解釋

/ // beginning of pattern 
^ // starts at the beginning of a new line 
{ // looks for a bracket immediately following a new line 
.* // any subsequent characters 
$ // until we reach the end of the line 
/ // end of pattern 
m // the 'multiline' flag, necessary for the use of^

[0] // match() returns matches in an array. we want the first (and in this case only) match 
+0

嗨,我知道爲什麼api返回格式錯誤的數據,它是一個wordpress網站,我確實使用kentopvc插件來計算每篇文章的視圖。我相信腳本塊與kentopvc插件有關,也許我應該關閉它。但是,如果我真的計數我的網站的觀點,我可以刪除腳本塊而不關閉插件?我可以使用一些JavaScript過濾器方法在角度js結束時刪除