2013-04-23 38 views
4

我可以在IOS6上做一個CORS Ajax post工作正常,但是有一些非常奇怪的行爲表示瀏覽器正在加載內容,儘管請求已完成。IOS6 Safari Ajax Spinner

我已經提供了演示了此行爲的實時網頁here

而對於Node.js的源+ Express服務器可用here

注意這隻發生在iOS6的,此外它之間的行爲不一致例如,您可以導航到同一選項卡上的另一個頁面,它將繼續旋轉,但打開第二個選項卡,加載頁面,然後關閉第一個選項卡,然後它就會消失。

此外,如果您運行測試頁面,然後使用相同的瀏覽器選項卡轉到其他網站,微調控制器將繼續在新網站上旋轉。

所以我在尋找的是一些可能使這種行爲以合理方式進行的破解,我對不使用Ajax,CORS或POST不感興趣。

感謝您花時間和看看。

更新:蘋果已經證實了這個問題,但沒有更多,所以只會拭目以待下一個版本是否修復它。我將停止測試服務器,但保留可用的文件。

回答

0

把它放在你的代碼中。

$(document).ready(function(){ 
    getUpdates(); 
}); 

function getUpdates() { 
    $.post("status.jsp", {}, function(status){ 

     // do client-side rendering here 

     setTimeout(getUpdates, 5000); 
    }, "json"); 
} 

訪問此站點以瞭解更多信息。 http://www.devthought.com/2012/09/22/understanding-the-ios6-ajax-bugs/

+0

這沒有幫助,但謝謝。 – Jim 2013-05-15 13:21:55

+1

我的問題已被Apple關閉並標記爲重複,但他們不允許您查看它是重複的問題! – Jim 2013-09-23 09:28:53

1

我今天剛剛獨立發現了這個問題。我減少了測試用例,發現這隻發生在觸發預檢請求的CORS請求上。因此,我認爲這與兩項要求相繼發起的請求有關。選擇,然後無論您的要求是什麼方法。

只要觸發預檢科CORS請求,微控制器永遠不會消失,在什麼階段您觸發請求也無關緊要。

更新:剛剛嘗試過iOS7測試版,並且此錯誤仍存在。

+0

有用的分析,我被告知這將在IOS7固定 – Jim 2013-06-05 10:58:14

+0

只是想知道你是否已經提出了蘋果的問題?如果是這樣,您可以將詳細信息添加到http://openradar.appspot.com/,以便我們可以公開跟蹤此問題。 – 2013-06-06 00:39:04

+0

是的,仍然在iOS7中破碎... – Jim 2013-09-23 09:27:29