簡體   English   中英

使用jquery.get()發布數據時,json_encode返回數組作為字符串

[英]json_encode returns array as a string when posting data with jquery.get()

您好,我在jquery中的ajax請求有問題。

當我使用get請求而不發送任何數據時,響應如預期的那樣,我收到了數組並可以訪問這些值:

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

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

這可以按預期工作,並且我收到的“ 528”值為我的leftPlayer [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等。

而在我發送數據的第二個請求中,它打印為:

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

注意[]。 無法識別為數組。

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

有什么想法我要去哪里嗎?

我已經解決了我的問題。

就像“ nnnnnn”在他的評論中所說的一樣,我正在將我的“ json”參數傳遞給.done()函數而不是$ .get()函數。

我似乎無法正確地將其查看為JSON,因此我使用了最簡單的方法:

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

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

相反,使用$ .getJSON就像它說的那樣,並期望將JSON作為默認值返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM