您好,我在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作为默认值返回。

07-24 09:44