仅将json对象返回给ajax调用者

时间:2016-12-04 16:55:01

标签: javascript json ajax

我想在我的success回调中返回/访问一个数组 但我只得到整个HTML页面。

$.ajax({
  'URL': 'getData.php',
  success:function(data){
    alert(data); //Whole html file
  }
})  

访问getdata.php

<?php
 //Feed the array with database content

 echo json_encode( $columns );

?>  

我如何才能访问$columns

的内容

Obs1:我的php文件只包含php代码,100%。

这是上面alert打印的内容:

alert

2 个答案:

答案 0 :(得分:1)

您的脚本具有无法解析的HTML,因此请确保它仅返回json字符串。

我知道你是什么意思,你可以使用JSON.parse(字符串)解析PHP发送的json中的json;

确保你的php不会返回除编码json以外的任何其他字符串或HTML。

这是您修改过的JS,它应该按预期工作,您可以在浏览器控制台中检查所需的输出。

&#13;
&#13;
$.ajax({
  'URL': 'getData.php',
  success:function(data){
    data = JSON.parse(data);
    console.log(data);
    alert(data); //Whole html file
  }
})
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我认为您必须设置dataType,并将url放在没有单引号的位置。

尝试这样做......

 $.ajax({ 
    type: 'GET', 
    url: 'getData.php', 
    dataType: 'json',
    success: function (data) { 
        $.each(data, function(index, element) {
            /* Operate with each array row */
        });
    }
});