2012-03-13 56 views
0

我遇到了一個非常奇怪的錯誤。我們有一個應用程序,可以讓很多JSON調用來執行操作。該應用程序在Chrome,IE和Safari瀏覽器的所有環境,本地,開發,前期製作和製作中都可以很好地工作。 Firefox在所有環境下都能正常工作,除了本地。如果您在本地運行代碼,您會收到以下錯誤,數百人,幾乎每個JSON.parse電話:Firefox/Firebug JSON.parse錯誤,但只在本地

JSON.parse:意外的字符

JSON響應,例如:

[{"id":"724111437775422","order":0,"link":"","name":"Thumb Logo Transparent Back","active":true,"altText":"","url":"http://localhost/storm/mediamanager/retrieveMedia?id=724111437775422"}] 

的JS代碼本身是:

$.ajax({ 
type: 'GET', 
url: requestUrl, 
success: function(msg){ 
var parsed = JSON.parse(msg); 
callback(key, mediaType, targetSelector, parsed); 
}, 
error : function(jqXHR, textStatus, errorThrown){ 
if(Media.debug) 
//alert('getActiveMediaList: ' + JSON.stringify(jqXHR) + " | " + textStatus + " | " + errorThrown); 
var ignoreThis = 1; 
} 
}); 

我試圖從服務器端設置MIME類型,我已經試過修剪JSON,我已經嘗試了很多東西,也不管WH在Firefox似乎失去了解析這個JSON數據。

任何想法?

回答

1

您不需要在$ .ajax成功中使用JSON.parse,jQuery將在內部解析它。你還應該在$ .ajax中設置dataType選項爲dataType:'json'

+0

我遇到了同樣的問題。在Firefox本地主機上,我的JSON響應被自動解析,而在我的活動服務器上,響應沒有轉換爲對象,所以我需要使用'JSON.parse'。 – frequent 2013-04-29 13:07:45

+0

對我來說,它做到了。本地只需要dataType和jQuery在內部解析數據。 – szabcsee 2014-12-11 08:48:39