我有一个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>
答案 0 :(得分:1)
您正面临“Same Origin Policy”问题。这个概念是为了保护您的Web浏览体验,以便您访问的页面(即错误的JavaScript)无法与未知服务器通信,例如它们不会侵犯您的隐私(无法窃取您的数据)。
解决问题的最简单方法:将逻辑移至服务器(PHP,Ruby,Java,等等......)。让您的服务器执行HTTP请求并检查您的需求。然后使用XMLHttpRequest()
询问运行相同域和端口的您的服务器,这样就不会有任何问题。就是这样。