Chrome无法完全控制JS对象

时间:2017-02-14 06:51:35

标签: javascript php jquery json ajax

我正在使用JSON中的响应进行AJAX发布请求。 我的ajax代码是

$.ajax({
    type: "POST",
    url: "admin/vendors_post.php",
    data: "vendet_req=fetch&venid="+sel_ven,
    dataType: 'json',
    beforeSend: function(){
        $('#trans_loader').css("display", "table");
    },
    success: function(response){
        console.log(response);
    }
});

Consoling the object shows

When consoled object is explored

问题在于,我在响应中收到的对象在探索时没有显示某些对象属性。但是当我尝试使用点表示法明确地调用它们时,我得到了正确的值。我浪费时间寻找在控制整个响应对象时未显示的那些少数变量。作为参考,探索控制台对象时不会显示属性“id”,“com_name”,“cat_name”等(参见上面的附图2)。

可能是什么问题?为什么对象不能与所有属性一起安慰?我正在使用jQuery 2.2.0。并在服务器端使用php 5.4.31。

注意:根据JavaScript的对象大小为24,而从服务器发送的实际大小为29.虽然我能够显式访问这5个属性。我在'json_encode()'之后从php post文件发送数据。

4 个答案:

答案 0 :(得分:2)

在此处添加我的评论,以便从参考文献中找到它们:

如果console.log()与您在控制台中展开项目之间进行了数据转换,则可能会发生这种情况。

当数据记录到控制台时,它是您所处的状态,但是如果在整个代码中有任何更改数据,则浏览器控制台中的条目将引用更新的值。

答案 1 :(得分:1)

是。 @Alex是正确的。 @Yogesh尝试避免该函数调用并检查控制台。

答案 2 :(得分:1)

这与jQuery或PHP无关,这就是Chrome的工作原理。

要注意的两件事:

  1. 在Chrome中,当您在对象上使用console.log时,它仅显示第一个 5个属性而不对其进行排序。展开对象时,它会显示按字母顺序排序的所有属性
  2. 正如 @AlexSzabó所说,如果在使用console.log()后对象属性发生了变化,展开的对象将在展开时显示当前属性。

答案 3 :(得分:0)

请尝试使用

<p data-ng-init="totTicket = adulttotTicket"></p>