2012-06-13 55 views
5

這裏是我的客戶端的jQuery代碼:jQuery的似乎並不解析JSON自動

$.ajaxSetup ({ 
    contentType: "application/json", 
    datatype: 'json' 
}); 

$.ajax({ 
    type: "POST", 
    url: "http://localhost:1234/path", 
    data: JSON.stringify(myData), 
    success: function(aString){ 
     alert(aString); 
    }, 
    error: function(errorData){ 
     alert(errorData); 
    } 
}); 

這裏是服務器發送的數據:

200 
Content-Type: application/json 

"aStringsData" 

在警報中的引號「 aStringData「被顯示。但是,我期望引用將由於自動JSON.parse帶走,我期望從數據類型'json'發生。我錯了嗎?

+2

JavaScript是區分大小寫的。 'dataType!==數據類型'。 – Matt

+0

非常感謝,我可能不會在安靜的時間想出它。 – hansi

回答

5

該參數實際上是dataType而不是datatype(JavaScript區分大小寫)。

你可以嘗試使用:

​​

在您ajaxSetup;

+0

@Matt謝謝先生 – thecodeparadox

+0

謝謝,解決了這個問題! – hansi

+0

@hansi不客氣,很樂意幫忙 – thecodeparadox

0

您的迴應:

"aStringsData" 

無效JSON我相信,作爲JSON應該有{開始,對不對?

你可能意味着

{ 
"string": "data" 
} 
+0

不正確。一個字符串本身就是*完全有效的JSON。 http://json.org – Matt

+0

那麼,它可以是一個對象,或一個事物列表(如一個字符串),但它本身不是一個字符串,可以嗎? (當然,我可能會誤解,但前3個驗證器我也一樣說) – Nanne

+0

@matt:你鏈接的json頁面有2個bolletpoints:它們告訴它它是一個對象或列表。這裏肯定會有一個「價值」的定義,但是當我閱讀它時,並不認爲這個值本身就是有效的JSON。 – Nanne

-1

,你可以嘗試使用這樣的:

eval(aString) 
+0

這不會*關閉*來回答問題。問題是問*爲什麼* JSON不會自動分析,而不是如何去做。 – Matt