随机很长的跨域ajax请求与Symfony2

时间:2014-09-10 21:06:24

标签: javascript ajax symfony

我有两个子域名client.domain.com和server.domain.com 客户端只是一个带有简单jquery ajax POST请求的index.html。

$.ajax({
  url: 'http://server.domain.com/upload',
  type: 'POST',
  success: function(response){
    console.log(response);
  }
});

服务器运行symfony2并将Access-Control-Allow-Origin标头设置为'*'。

客户端发送的预检OPTIONS请求通常(80%的时间)非常快(100毫秒),随机非常长(10到15秒timeline + headers)。

我测试过用Postman发送OPTIONS请求,并且绝对没有问题,总是很快,所以它似乎来自jquery ajax请求。此外,symfony2 web profiler表示缓慢的请求没有任何问题,因此它似乎不是来自服务器。

我真的不知道如何调试这个,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这似乎是会话锁定问题。基本上symfony用会话阻止并行请求。 尝试将此代码添加到您的控制器操作中,最好尽快,但是在您完成编辑任何可以更新会话(通常与用户相关)的任何内容之前不会:

public function uploadAction() {
    // code potentially affecting session

    session_write_close(); // unlock session to allow multiple requests with this session

    // rest of the code
}

更多信息: