不可预测的Access-Control-Allow-Origin行为

时间:2012-02-15 20:29:55

标签: jquery ruby-on-rails ajax google-chrome

我有一个Rails应用程序,其操作如下:

def some_action

  headers['Access-Control-Allow-Origin'] = 'http://www.example.com'
  headers['Access-Control-Request-Method'] = 'GET'
  headers['Access-Control-Max-Age'] = '1728000'

  n = Model.getNumber
  render :json => {:count => n}
end

我在example.com上有一些关于该操作执行$.getJSON的jQuery。奇怪的是,这种行为完全不可预测。每隔几秒运行一次GET请求,其中大约50%的请求失败,并且“Access-Control-Allow-Origin”消息不允许使用“Origin http://www.example.com”。

我真的希望它可以100%的时间工作,也可以100%的时间失败。为什么它会在多个请求之间表现不同,除了相同的浏览器之外几秒钟?

编辑:我正在缓存该行动......不确定这是否有所不同。

1 个答案:

答案 0 :(得分:3)

这对我来说听起来像是一个缓存问题。如果您使用的是HTML缓存,则可能会删除标题,或者如果要缓存代码中的数据,请确保无论如何都添加标题。