我有以下jQuery脚本,它应该从Web位置获取数据。
第一步是加载数据......(之后我将不得不对数据做些什么。)
我的问题是第一步。这些东西根本不加载。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var url = "http://vsr.informatik.tu-chemnitz.de/edu/2015/evs/exercises/jsajax/guestbook.php";
$.get(url, function(data){
alert("test");
});
});
</script>
此脚本不会提醒“test”。我的问题是:为什么不呢?怎么了?
答案 0 :(得分:1)
您的请求已被CORS政策阻止,因此您无法继续下一个声明。
这是对科尔斯的介绍:
CORS是访问不同网络资源的行业标准 域。这是由网络实施的非常重要的安全概念 浏览器,以防止Javascript或CSS代码发出请求 反对不同的起源。
让我们考虑一下这种情况:
您有来自Domain1的链接,该链接在浏览器中打开并要求提供 来自Domain2的JavaScript文件。现在您的Web浏览器会调用 域2。如果在Domain2上,您有一个接受请求的策略 仅来自Domain2的JavaScript或CSS,并忽略来自的所有请求 另一个域,那么你的浏览器的Domain1请求将失败 错误。简单说明:如果请求不是来自同一个域 或者原产地,只是忽略它。
这是防止黑客攻击和资源的非常重要的功能 在没有所有者知情的情况下窃取。
要继续成功,原始主机需要发送Access-Control-Allow-Origin "*"
标头以允许请求/响应。
参考:
答案 1 :(得分:0)
所以发生的事情可能是浏览器的安全性不允许跨域ajax调用。换句话说,由于您可能与“tu-chemnitz.de”不在同一个域中,因此浏览器会阻止您的ajax请求。解决此问题的方法是关闭浏览器的安全性。但如果你不得不诉诸于此,你需要重新思考你在做什么。您网站的用户肯定不会关闭他们的浏览器安全性,因为您正在尝试做“狡猾”的事情。