我有一個Rails應用程序具有以下作用:在example.com不可預知的訪問控制允許來源的行爲
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
我有一些jQuery的是對行動做了$.getJSON
。奇怪的是,這種行爲是完全不可預測的。每隔幾秒運行一次GET請求,其中大約50%會因可怕的「Origin http://www.example.com」不被Access-Control-Allow-Origin「消息而失敗。
我真的會預料它要麼100%的時間工作,要麼100%的時間失敗。爲什麼它會在多個請求中表現不同,從相同的瀏覽器除外?
編輯:我正在緩存該操作...不知道這是否有任何區別。
對於失敗和成功的請求,標頭是否相同? – abraham 2012-02-15 20:57:43
請求標頭是......響應標頭不是。 – Larsenal 2012-02-15 20:59:05
這聽起來像是一個緩存問題。如果您使用的是HTML緩存,則可能會丟棄標題,或者如果您要在代碼中緩存數據,請確保無論如何都會添加標題。 – abraham 2012-02-15 21:02:32