2015-12-30 85 views
0

在我的網站上我打電話給兩個API,但AdBlock似乎阻止了其中一個。如何防止客戶端阻塞外部資源?

//website cesare.io 
$.get("http://ipinfo.io", function(response) { 
    var l = "39.069100,-11.402732"; 
    $.get("http://api.wunderground.com/api/cbfb6c4b4b980e56/conditions/forecast/alert/q/"+ l +".json", function(response) { 
     weather = response.forecast.simpleforecast.forecastday[0].conditions.toString(); 
     txt(); 
    }); 
}, "jsonp"); 

enter image description here

我發現了與 「禁止跟蹤」 用戶啓用獲得上述錯誤。

enter image description here

如何防止從的AdBlock阻塞ipinfo.io API的回調?

我可以知道AdBlock禁用此API調用的原因嗎?

+1

你不能。用戶可以完全控制瀏覽器。 – Barmar

+0

@Barmar所以唯一的解決方案是:1)要求用戶禁用AdBlock 2)只是不調用API? – Cesare

+0

您也可以從服務器腳本而不是瀏覽器調用API。 – Barmar

回答

1

作爲一個快速&骯髒的修復嘗試添加該HTTP頭http://ipinfo.io

Access-Control-Allow-Origin: * 

如果您使用Apache,嘗試添加此行到您的.htaccess:

Header add Access-Control-Allow-Origin "*" 

如果您需要代理你可以使用這個PHP腳本:

$url = "http://ipinfo.io/" . $_SERVER['REMOTE_ADDR'] . "/json"; 
echo file_get_contents($url); 
+0

謝謝。這是否必須去我的.htaccess? – Cesare

+0

你使用什麼網頁服務器?你可以通過它的配置添加它。如果你使用apache,你可以在.htaccess中完成。如果你不介意性能,你可能會(至少在你嘗試解決方案的時候嘗試),製作一個簡短的php腳本,把這個頭文件然後把原始文件作爲主體。 – Gavriel

+0

謝謝。令人尷尬的是,我並不真誠地知道。我剛從Namecheap獲得一個虛擬主機帳戶。 +1我現在要嘗試您的解決方案。 – Cesare