我需要檢查新註冊的域是否已從用戶瀏覽器完全註冊/傳播,以便我可以確保他們有權訪問它。檢查用戶是否可以訪問跨域外部資源
我對網站有完全的控制權,並且需要檢查目標域上是否存在像文本文件一樣簡單的內容,如果有,我們很樂意去。我可以編輯請求頁面和目標資源。我猜這必須是某種類型的jQuery ajax檢查。
我無法做到這一點在PHP中,因爲雖然我的DNS服務器已經propgated,最終用戶可能沒有。
我需要檢查新註冊的域是否已從用戶瀏覽器完全註冊/傳播,以便我可以確保他們有權訪問它。檢查用戶是否可以訪問跨域外部資源
我對網站有完全的控制權,並且需要檢查目標域上是否存在像文本文件一樣簡單的內容,如果有,我們很樂意去。我可以編輯請求頁面和目標資源。我猜這必須是某種類型的jQuery ajax檢查。
我無法做到這一點在PHP中,因爲雖然我的DNS服務器已經propgated,最終用戶可能沒有。
通過大量的心痛與此同一起源策略去了。最終最可靠的/兼容的方式是加載<img>
標籤與目標服務器上的圖像和檢查jQuery中的.load
和.error
處理程序。問題是你需要設置img AFTER的src來綁定錯誤處理程序。
<img id="check" width="1" height="1" />
<script type="text/javascript">
$(function() {
$("#check").error(function(){
// It failed
}).attr('src', 'http://domain.com/px.gif');
$('#check').load(function() {
// It worked
});
});
</script>
假設你不介意在您的網站的jQuery扔,這樣的事情應該工作作爲一個框架:
$.ajax('http://www.example.com/text.txt', {
success: function(result) {
alert('User has access');
},
error: function() {
alert('User does not have status');
}
});
相反的,而那些沒用alerts
,你可以這樣做:
success: function() {
$.get('http://1.1.1.1/user-has-access.php?access=true');
},
error: function() {
$.get('http://1.1.1.1/user-has-access.php?access=false');
}
你不能使用AJAX調用,因爲它會被相同的原始策略阻塞。
但是你可以使用iframe的代替:
<iframe id="check_1" src="http://www.wikipedia.com"></iframe>
<iframe id="check_2" src="http://www.aasdjflajsdflasdf.com"></iframe>
<script type="text/javascript">
$(document).ready(function() {
$('iframe#check_1').load(function()
{
alert("check 1 succeeded!");
});
$('iframe#check_2').load(function()
{
alert("check 2 succeeded!");
});
});
</script>
他對這個網站讓他可以添加訪問控制請求報頭 –
這不是工作100%的時間,可以做到與加載順序完全控制? – Dunhamzzz
這不會因爲同源策略的工作。 – Dunhamzzz