Access-Control-Allow-Origin不允许使用原始null,而不使用本地文件

时间:2013-04-12 06:08:29

标签: javascript html ajax

我有以下脚本,我想只做一件事。调用url并检查http.status 200是否返回。我一直得到" Access-Control-Allow-Origin不允许使用Origin。"但错误。我在StackOverflow上看到了与本地文件系统有关的一些事情,但是,我打电话给http urls。谁知道为什么我会收到这个错误。我正在使用Chrome。在此先感谢您的帮助!

<html>
<head>
<script type="text/javascript">
function checkHet(invoer)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.write("Klopt als een bus!");
}
else
{
document.write("Klopt <b>niet</b> als een bus!");
}
}
xmlhttp.open("GET", invoer, true );
xmlhttp.send();  
}           
</script>
</head>
<body>
<form>
<input type="text" name="adres" value="http://www.">
<input type="button" value="Check" onClick="checkHet(form.adres.value)">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

因为出于安全目的,不允许在其他域中使用AJAX(这包括本地文件系统)。这是Same Origin Policy (SOP)的实际效果。

但也有例外,特别是如果目标域允许Cross-origin Resource Sharing (CORS)

答案 1 :(得分:0)

  • Javascript不应该访问本地文件。因为如果javascript可以访问本地文件,javascript可能会窃取客户端计算机上的文件。
  • 通常,当脚本尝试访问本地文件时,浏览器会弹出一个安全对话框,询问用户是否允许脚本继续运行。