2013-09-01 28 views
2

您好,我在jQuery中的ajax請求有問題。json_encode在使用jquery.get發佈數據時返回數組作爲字符串()

當我用我的GET請求不發送如預期響應的任何數據,我收到我的陣列,並且可以訪問值:

$.get(
    loadUrl, 
    function(data) { 
     useReturnData(data); 
    }, 
    "json" 
); 

function useReturnData(data){ 
    leftPlayer = data; 
    alert(leftPlayer[4]); 
}; 

可正常工作,我收到我的「528」值成爲我的左派玩家[4]的價值。

但是,當我改變我的請求發送一個數據的請求到PHP像這樣:

$.get(
    loadUrl, 
    { type: "left" }) 
    .done(function(data) { 
     useReturnData(data); 
    }, 
    "json" 
); 

function useReturnData(data){ 
    leftPlayer = data; 
    alert(leftPlayer[4]); 
}; 

收到我的數據似乎是在字符串格式爲JavaScript。 我的警報打印「5」(如果數組是字符串,則爲第4個字符)

當警報leftPlayer時。我發現,在其中我發送沒有數據的可變打印爲第一請求:355,355,355,355,528等...

而在所述第二請求,其中I DO發送打印數據:

[355,355,355,355,528 ,等等]

注意[]。它不被識別爲數組。

它訪問的php文件在每個請求中絕對沒有變化,因爲我現在正在測試。發送的數據目前甚至不在php文件中使用。

任何想法我錯了嗎?

+1

您應該將''json「'參數傳遞給'$ .get()'函數,但是您將它傳遞給'.done()'函數。 – nnnnnn

+0

我明白了。我嘗試使用: –

+0

$獲得( \t \t使用loadURL, \t \t {類型: 「左」}, \t \t 「JSON」) \t \t .done(功能(數據){ \t \t \t useReturnData(data); \t \t} \t); - 但沒有改變 –

回答

1

我解決了我的問題。

像什麼「nnnnnn」在他的評論中說我將我的「json」參數傳遞給.done()函數而不是$ .get()函數。

我似乎無法得到它正確地認爲這是JSON雖然讓我用最簡單的方法:

$.getJSON(
    loadUrl, 
    { type: "left" }, 
    function(data) { 
     useReturnData(data); 
    } 
); 

function useReturnData(data){ 
    leftPlayer = data; 
    alert(leftPlayer[4]); 
}; 

使用$ .getJSON而是確實喜歡它說,預計JSON被返回默認。

相關問題