2010-09-04 53 views
0

使用JSONP的我的X站點腳本在IE8上遇到錯誤,但在firefox和crome上都能正常工作...... 這裏返回的JSON對象傳遞一個數組用逗號結尾,沒有最後一個元素...即類似於{a,b,c,} ..你可以看到最後一個元素被逗號成功,這就是IE上的問題。 實際的JSONP響應是: gotMsg({「msg」:[{「lastMsgId」:「69」,「user」:「diptanu」,「textVal」:「Sup」,「time」:「2010-09- 04 06:20:15「,} ...正如你可以看到最後一個逗號是它說的是造成問題...錯誤是IE8-if JSONP數組在逗號後沒有最後一個元素..get錯誤

預期的標識符,字符串或數字 chat.php?callback = gotMsg &用戶= & lastMsgId = -1 & REF = 1個&用戶id = -1 & LOC = HTTP%3A%2F%2Faagmgyd6.yahoo.joyent.us%2Fchat%2Findex.html,第1點的字符96 ....

請幫忙 謝謝 Mohan Gupta

回答

0

JSON編碼器通常不會添加逗號,PHP的json_encode不會。在JavaScript中,你不應該在數組的最後一個元素後面添加一個逗號,但是firefox和chrome會接受這個逗號。

請嘗試您的json編碼器功能,或者如果它不可能,請執行一些字符串處理以去掉最後一個逗號。

0

IE8是唯一正確拋出錯誤的瀏覽器:根據JSONLint,這是無效的JSON。

您將不得不以某種方式修復源代碼,我看不出有什麼辦法讓IE在此工作。

0

爲避免與瀏覽器使用Aptana StudioEclipse/Javascript Editor嚴重不兼容。它們都有可能驗證由服務器腳本生成的Javascript和JSON對象。

這裏是個人數據正確構造的JSON對象的例子。你可以從WIKI::JavaScript Object Notation

{ 
    "firstName": "John", 
    "lastName": "Smith", 
    "age": 25, 
    "address": { 
     "streetAddress": "21 2nd Street", 
     "city": "New York", 
     "state": "NY", 
     "postalCode": "10021" 
    }, 
    "phoneNumber": [ 
     { 
      "type": "home", 
      "number": "212 555-1234" 
     }, 
     { 
      "type": "fax", 
      "number": "646 555-4567" 
     } 
    ] 
} 

得到它,當你從一個對象在PHP中,你會更好地利用json_encode方法或等同於您遇到的錯誤之前產生正確編碼JSON結構不同的語言生成JSON。

相關問題