【问题标题】:jquery ajax returning extra datajquery ajax返回额外数据
【发布时间】:2018-01-20 07:29:35
【问题描述】:

使用 json_encode($phpArray);将数据发送回我的 javascript。问题出在 javascript 中,开头添加了额外的数据。下面是我的文件的简化示例,它们仍然可以证明问题。

days.php:

<?php
$phpArray = array(
  0 => "Mon",
  1 => "Tue",
  2 => "Wed",
  3 => "Thu",
  4 => "Fri",
  5 => "Sat",
  6 => "Sun",
);
echo json_encode($phpArray);

processDays.js:

$.ajax({
  url: 'days.php',
  success: function(response) {
    console.log(response);
  },
)};

我希望得到(如果我只是自己运行 php 文件,我会得到):
["周一","周二","周三","周四","周五","周六","周日"]

但我得到:
22["周一","周二","周三","周四","周五","周六","周日"]

这个 22 是从哪里来的??

【问题讨论】:

  • “这 22 来自哪里?” 在您显示的代码之前的 PHP 文件中的代码(或任何 &lt;?php ... ?&gt; 部分之外的原始文本)。 echojson_encode 都没有损坏(在 this page 上搜索“损坏”以获取解释)。投票结束为错字/非复制。

标签: javascript php jquery ajax


【解决方案1】:

如果想在 json 中获得响应,还应该为 ajax 调用添加数据类型 添加数据类型为json,如下,

$.ajax({
  url: 'days.php',
 dataType: "json", 
  success: function(response) {
    console.log(response);
  },
)};

【讨论】:

  • 这更像是一个评论而不是一个答案。
  • @uom-pgregorio 是的,这可能是一条评论,但我想对代码进行全面更新,
  • @GRaichand 忽略我所说的 - 看起来它解决了 OP 的问题。
【解决方案2】:

当你使用 json 时,你应该在 ajax 中声明 dataType:"JSON"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多