我需要检查新注册的域是否已从用户浏览器完全注册/传播,因此我可以保证他们可以访问它。
我可以完全控制网站,并且需要检查目标域上是否存在与文本文件一样简单的内容,如果存在,我们就可以了。我可以编辑请求页面和目标资源。我猜这必须是某种jQuery ajax检查。
我无法在PHP中执行此操作,因为尽管我的服务器DNS已经提升,但最终用户可能没有。
答案 0 :(得分:2)
您无法使用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>
答案 1 :(得分:1)
假设你不介意在你的网站上抛出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');
}
答案 2 :(得分:0)
通过这个同一个原始政策经历了很多心痛。最后,最可靠/兼容的方法是在目标服务器上加载带有图像的<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>