我有一个本地服务器:127.0.0.1:8000 和一个网站:127.0.0.1:9000 都使用 play2 框架运行。
我在服务器上发出多个 jquery ajax 请求以获取 json 数据并使用这些数据加载图形。
问题是,以完全随机的方式,我得到一个访问控制允许来源错误。我阅读了很多关于 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 调用,都以完全相同的方式,在同一个目标 url。
问题是,当我加载页面(并执行 ajax 调用)时,有些 ajax 调用有效,有些则无效。如果我刷新页面,则可以使用不同数量的调用。这看起来对我来说真的很随意。
我还注意到,如果我为 ajax 调用指定 async:false,则永远不会触发错误。当然,我需要异步调用(这太容易了)。
我看到了很多关于这个错误的帖子,我以为我对它了如指掌。
欢迎任何帮助。提前致谢。