[英]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.