2012-05-31 62 views
1

我使用Backbone.js的建立一個網站分析數據。它在我們的開發服務器上運行良好,但它沒有使用IE7-9解析客戶端服務器中的數據。 (火狐,Safari瀏覽器的罰款)Backbone.js的沒有在IE

我發現骨幹調用取()請求數據,但不啓動解析()時,數據返回。我找不到成功或錯誤返回。有代號的一部分:

EMR.CategoriesCollection = Backbone.Collection.extend({ 

     url : 'contents/json/categories.txt', 

     initialize:function() { 
      console.log('Get data from:', this.url); 
      this.fetch(); 
     }, 

     model: EMR.ItemModel, 

     parse : function(data) { 
      console.log("CategoriesCollection parse data:", [data]); 
      return data; 
     } 
    }); 

請比較以下兩個鏈接(在IE 7-9),它們是同一套代碼,只是服務器的區別:

它的工作原理: 1)http://pms.dq.hk/clients/amex_eMR/client/cn/emr/test_data.html

它失敗: 2)http://qwww.americanexpress.com/hk/cn/emr/test_data.html

如果骨幹送取(),但解析()沒有觸發,如何跟蹤的問題?

任何可能的方法,我可以試試嗎?

感謝您的建議。

問候,

邁克爾

回答

0

兩個,我可以看到的唯一區別是響應頭..

服務器:

Connection Keep-Alive 
Date Thu, 31 May 2012 03:41:16 GMT 
Etag "ae6691-123ac-59de3b00" 
Keep-Alive timeout=15, max=98 
Server Apache/2.0.63 (Unix) PHP/5.3.2 DAV/2 

客戶端服務器:

Connection keep-alive 
Content-Type text/plain; charset=big-5 
Date Thu, 31 May 2012 03:41:25 GMT 
Last-Modified Tue, 22 May 2012 06:41:10 GMT 
Vary Accept-Encoding 

客戶端服務器響應中的內容類型引起了我的注意,但我不是IE專家..您可能想提及您遇到問題的IE版本,並測試一些其他版本以隔離它。

+0

感謝您的回覆。我測試了IE 7-9,他們都有問題。 – Michael

0

任何可能的方法,我可以試試嗎?

你好。您是否嘗試向提取方法添加錯誤回調? 此外,«失敗»服務器以gzip格式發送gzip壓縮的內容。也許IE不能正確處理gzip的JSON?或者,也許你可以嘗試將內容類型頭從«text/plain»改爲«application/json»?

0

的問題是在這裏: http://forum.jquery.com/topic/the-problem-with-ie8-and-encoding-error-c00ce56e

我們的客戶在

Content-Type text/plain; charset=big-5 

當我將在獲取(一個錯誤處理程序)服務器返回數據,我可以看到一個錯誤返回「無法完成由於錯誤c00ce56e操作「。這是parse()不起作用的原因。

我無法更改客戶端的服務器設置,因此我將數據文件放到了返回Content-Type text/plain的其他目錄中;解決問題。