jQuery获取请求不返回任何内容

时间:2017-02-09 19:38:09

标签: jquery get

我有以下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”。我的问题是:为什么不呢?怎么了?

2 个答案:

答案 0 :(得分:1)

您的请求已被CORS政策阻止,因此您无法继续下一个声明。

这是对科尔斯的介绍:

  

CORS是访问不同网络资源的行业标准   域。这是由网络实施的非常重要的安全概念   浏览器,以防止Javascript或CSS代码发出请求   反对不同的起源。

     

让我们考虑一下这种情况:

     

您有来自Domain1的链接,该链接在浏览器中打开并要求提供   来自Domain2的JavaScript文件。现在您的Web浏览器会调用   域2。如果在Domain2上,您有一个接受请求的策略   仅来自Domain2的JavaScript或CSS,并忽略来自的所有请求   另一个域,那么你的浏览器的Domain1请求将失败   错误。简单说明:如果请求不是来自同一个域   或者原产地,只是忽略它。

     

这是防止黑客攻击和资源的非常重要的功能   在没有所有者知情的情况下窃取。

要继续成功,原始主机需要发送Access-Control-Allow-Origin "*"标头以允许请求/响应。

参考:

HTTP access control (CORS)

How to fix Access-Control-Allow-Origin (CORS origin) Issue for your HTTPS enabled WordPress Site and MaxCDN

答案 1 :(得分:0)

所以发生的事情可能是浏览器的安全性不允许跨域ajax调用。换句话说,由于您可能与“tu-chemnitz.de”不在同一个域中,因此浏览器会阻止您的ajax请求。解决此问题的方法是关闭浏览器的安全性。但如果你不得不诉诸于此,你需要重新思考你在做什么。您网站的用户肯定不会关闭他们的浏览器安全性,因为您正在尝试做“狡猾​​”的事情。