PHP json_encode-相同的代码一次传递一个数组,一次传递一个对象

时间:2018-11-17 01:38:09

标签: php jquery arrays json object

我在两个PHP类中使用相同的代码。我复制并粘贴了它。 在一个类中,将数组传递到JavaScript,在其中我也使用复制/粘贴的代码段,以及一个对象。

这是PHP-代码:

private $status_good = array('Status' => 'good');
private $status_fail = array('Status' => 'fail');

echo json_encode($this->status_fail);

这是JS / jquery-代码:

    $.post("./someclass.php",
       {
            code    :   this.code,   
            input   :   this.input
       },   
       function( data ){
          console.log("Data: ")
          console.log(data );
       }

一旦控制台显示:Data: {"Status":"fail"}
在另一个脚本中:Data: Object { Status: "fail" }

我没有执行UTF操作,也没有进行标头操作。
请这么客气,告诉我在不同类中使用完全相同的代码怎么可能发生这种情况。
预先感谢。

1 个答案:

答案 0 :(得分:1)

dataType参数添加到$.post和/或在php中设置Content-type标头。

$。ajax对返回的数据类型进行“最佳猜测” ,如果未明确告知期望什么,并且没有标头可以帮助确定。

在一种情况下,解析JSON似乎正确,而在另一种情况下,将其视为文本并将字符串返回给回调。

$.post("./someclass.php",
   {
        code    :   this.code,   
        input   :   this.input
   },   
   function( data ){
      console.log("Data: ")
      console.log(data );
   },'json')