簡體   English   中英

我怎樣才能最容易地將這個 HTTP 響應解析為 JSON 然后訪問 responseText 字段?

[英]How can I most easily parse this HTTP response into JSON to then access responseText fields?

我正在嘗試解析從此 URL - https://www.cloudflare.com/cdn-cgi/trace返回的明文 - 以讀取 ZA12A3079E14CED46E69BA52B 地址值。 這是我用於請求的代碼片段:

 ipAddress = $.get('https://www.cloudflare.com/cdn-cgi/trace', function(data) { return data; });

登錄瀏覽器控制台后,響應如下所示:

在此處輸入圖像描述

我試過使用JSON.stringify() ,使用['responseText']訪問responseText ,以及.responseText .. 但沒有運氣。

如何解析此響應,以便我可以最輕松地從responseText中訪問ip值?

$.get("https://www.cloudflare.com/cdn-cgi/trace", function(data) {
  const [ ,ip ] = data.match(new RegExp("ip=" + "(.*)" + "\n"));
  console.log(ip);
});

輸出

"2a01:cb18:362:2200:e90e:fb09:8445:6302"

您可以在回車上進行解析,也可以簡單地在字符串中查找 ip= 或使用正則表達式搜索它。

如果您查看 ipAddress.reponseText 它是一個回車分隔的字符串。 所以

var myip=ipAddress.responseText.split('\n');
console.log(myip[2]); 'the text ip=192.168.1.10  for example if it's always in the same position.  

如果它不在同一個 position 中,則查看數組以找到它。

它的返回文件作為響應,所以我不太清楚 JSON,這里有一些方法

 const ipAddress = $.get('https://www.cloudflare.com/cdn-cgi/trace', function (data) { const arr = data.split("\n") const ip = arr.filter(v => v.includes("ip="))[0] console.log(ip.split("=")[1]) });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM