javascript - 嵌入html测试url的脚本

标签 javascript html cross-domain

我有一个 html 文件(下面的示例),其中包含一个简单的 javascript 函数来检查 URL 是否存在。然而,它仅适用于某些现有的 URL(不是全部),并且它永远不适用于不存在的 URL——只是似乎不会产生任何结果。我不知道出了什么问题。

--tsf

<HTML><HEAD>
<script>
function Exists(url)
{
    var req = new XMLHttpRequest();
    req.open('HEAD',url,false);
    req.send();
    return req.status!=404;
}
</script>
</HEAD>
<BODY>
<script>
if (Exists('http://stackoverflow.com/')) {
    document.write('Exists');
} else {
    document.write('Does not exist');
}
</script>
</BODY></HTML>

最佳答案

您面临“Same Origin Policy ”问题。这个概念是为了保护您的网络浏览体验,以便您访问的页面(即不良 JavaScript)无法与未知服务器通信,例如他们不会侵犯您的隐私(无法窃取您的数据)。

解决问题的最简单方法:将逻辑移至服务器(PHP、Ruby、Java 等)。让您的服务器执行 HTTP 请求并检查您需要什么。然后使用 XMLHttpRequest() 询问运行相同域和端口的您的服务器,这样就不会出现任何问题。仅此而已。

关于javascript - 嵌入html测试url的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126809/

相关文章:

javascript - 无法在 Angular 中为超链接创建自定义单击指令

javascript - 如何从 javascript/jquery 中的复选框获取 bool 值?

html - 使用 'ß' 时,Internet Explorer 不会将 'SS' (ß/es-zed) 更改为 'text-transform: uppercase;'

javascript - 检查一个div是否为空

javascript - 有什么方法可以将整个网页从不同域加载到我的页面吗?

Visual Studio Team Services REST API 的 AJAX 跨域问题

javascript - 在 sails.js 中仅生成后端

javascript - 当点击 <li> I 时显示无 div 并显示表一个 div

javascript - 使用 npm 请求库时未保存 Cookie

声明中带有索引的 JavaScript 数组