在使用 Firefox 的私人瀏覽模式時,我無法使用 AJAX 從公共 Reddit API 中提取資料。 在非私人瀏覽模式下,該代碼作業正常。
我所說的公共 API 指的是像https://reddit.com/r/funny/.json這樣的端點。請注意,如果您嘗試直接訪問該鏈接,那么該鏈接在常規或隱私瀏覽模式下都可以作業。 然而,從AJAX中使用相同的鏈接在私人瀏覽模式下并不作業,如以下代碼所示:
var url = "https://www.reddit.com/r/funny/.json?limit=4"/span>。
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp'/span>,
success: function(data) { $('#foo')。 append('<p>Success!</p> '); },
error。function() { $('#foo'/span>). append('<p>Failure!</p> '); },
jsonp: 'jsonp'。
});
JSFiddle鏈接 (在常規和隱私瀏覽視窗中嘗試)
我想也許JSONP在這種情況下會有幫助,但情況似乎并非如此,或者我只是做錯了。 JSONP檔案似乎非常稀少,尤其是與Reddit API相關的檔案。
uj5u.com熱心網友回復:
當發送請求時,Firefox在控制臺顯示的錯誤是:
。
在 "https://www.reddit.com/r/funny/.json?limit=4&jsonp=jQuery4001757379387749933244664702950021422623963_1631658838396&_=1631658838397 "的資源被封鎖了,因為內容封鎖已經啟用。
根據 disconnect.me 提供的串列,在私有模式下或啟用了增強型跟蹤保護后,Firefox 72 及以上版本將阻止對某些域的第三方請求,這可以在 GitHub 上找到。
reddit.com是這些域名之一,被歸類為 "一般指紋 "和 "社會"。根據Mozilla博客中的一個腳注:
(強調是后加的,這些是適用于此處的分類)Disconnect 的封鎖名單上的跟蹤者是廣告、分析、社會、內容或 Disconnect 類別中的任何域。指紋器是指紋類別中的任何域名。Firefox 會阻止這兩種分類的交集,即既屬于某個跟蹤類別又屬于指紋類別的域名。
你最安全的做法是,從你自己的 API 后臺獲取資料,而不是直接從前端向 Reddit 發送請求,以便在 Firefox 和其他具有類似跟蹤保護功能的瀏覽器中顯示該內容。
或者,如果這不是一種選擇,您可以添加良好的錯誤處理,并要求您的用戶禁用您網站的增強型跟蹤保護,以查看他們所錯過的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309497.html
標籤:
上一篇:根據資料框架的條件過濾資料
