php - json_encode 在使用 jquery.get() 发布数据时将数组作为字符串返回

标签 php javascript jquery ajax arrays

你好,我在 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,etc...

而在我发送数据的第二个请求中,它打印为:

[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 作为默认值返回。

关于php - json_encode 在使用 jquery.get() 发布数据时将数组作为字符串返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18557974/

相关文章:

php - 如何尽可能有效地计算和排名 php 中的数据

javascript - 如何修复 :"Cannot read property ' init' of undefined TypeError”?

jquery - 如何创建 HTML 表格的 tr 和 th

jquery - CSS 删除或重命名第一个 child 的类

php - Mysqltuner 优化配置和表、报告

php - Html 外文字符编码

php - SQL查询哪里不同

javascript - 将 jsmeter 用于我的 asp.net 应用程序

javascript - ReactJS - 无法读取未定义的属性 'preventDefault'

javascript - 通过单击/点击外部关闭移动菜单