有趣的问题!我四处搜寻,除了您发布的内容外,什么也找不到,但是当我弄乱一些测试代码时,我确实遇到了这一点。如果您只是想要一种简单的方法来测试URL而无需发出请求,那么我将按照您的方式进行操作。如果您不关心发出测试请求,则可以尝试以下操作:
对您想要的任何URL进行简单的Ajax请求:
var ajaxRequest = $.ajax({ url: 'http://www.google.com', async: false});它返回一个
jqXHR对象,然后可以检查:
ajaxRequest.isRejected(); // or...ajaxRequest.isResolved();
现在,唯一的问题是,
isRejected()将计算为
true为每一个情况下无法载入网页(即404未找到,等),但你可以检查状态代码:
ajaxRequest.status;
看起来
0当您尝试破坏相同的原始策略时,上面的行将返回,但是在其他情况下,它将返回适当的错误代码(即404)。
因此,总结起来,也许您可以尝试执行以下操作:
function testSameOrigin(testUrl) { var ajaxRequest = $.ajax({ url: testUrl, async: false }); return ajaxRequest.isRejected() && ajaxRequest.status === 0;}无论如何,这不是一个确定的答案,但我希望它能帮助您弄清楚您要寻找的东西!



