access-control-allow-origin随机发生

时间:2013-06-26 14:59:32

标签: javascript json playframework-2.0 cross-domain

我有一个本地服务器:127.0.0.1:8000和一个网站:127.0.0.1:9000都在运行play2框架。

我在服务器上发出多个jquery ajax请求以获取json数据并使用这些数据加载图形。

问题在于,以一种完全随机的方式,我得到一个access-control-allow-origin错误。我阅读了很多关于access-control-allow-origin的内容,并以这种方式修改了服务器的头部响应:

Response.ok(Engine.executeQuery(identifier, queryParameters))
                .header("Access-Control-Allow-Origin", "*")
                .header("Access-Control-Allow-Methods","GET, POST, OPTIONS")
                .header("Access-Control-Allow-Credentials","true")
                .header("Access-Control-Allow-Headers","Content-Type, *")
                .build();

我的ajax调用是这样的:

$.ajax({
        url: obj.url,
        dataType: 'json',
        crossDomain:true,
        success: function (data){
            // load graph
        }

我在同一个目标网址上进行了10次ajax调用,所有调用完全相同。

问题是当我加载页面(并执行ajax调用)时,一些ajax调用有效,有些则没有。如果我刷新页面,则会有不同数量的呼叫。这看起来真是随机给我。

我还注意到,如果我为ajax调用指定async:false,则永远不会触发错误。当然,我需要调用异步(这太容易了)。

我看到很多关于这个错误的帖子,我以为我对此一无所知。

欢迎任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题解决了。我重构了服务器,它运行良好。 这似乎是一个线程问题,不够安全。

感谢您的帮助。