AJAX响应空

时间:2016-02-20 13:13:23

标签: javascript php jquery ajax

我已经尝试了8个小时而且我没有得到它。

使用$.ajax我通过PHP脚本从我的数据库中获取数据。但在这种情况下它似乎没有用,我不是没有原因。无论如何,data2都是空的。

$.ajax({
  url: 'http://myurl.de/get', 
  data: [{ 'person_id': 2, 'action': 'getLinks' }],
  method: 'POST',
  success: function(data2){
    console.log(data2);
  }
});

PHP脚本(重要部分)看起来像这样

function getLinks($person_id)
{
    /* sql here */  

    /* format sql-output here */

    return $output;
}

if($_POST['action'] == 'getLinks'){
    echo getLinks($_POST['person_id']);
}

有趣的是,我在JavaScript文件中有一些确切的AJAX请求,上面有一些行与另一个动作,它完美地工作。当我尝试直接在PHP文件中获取数据时,我得到了结果。返回$output始终包含数据,但不会出现在JavaScript文件中。

AJAX总是调用success-function,但是没有data2。

3 个答案:

答案 0 :(得分:4)

尝试仅将对象用作data,而不将其包装在数组中:

$.ajax({
  url: 'http://myurl.de/get', 
  data: { 'person_id': 2, 'action': 'getLinks' },
  method: 'POST',
  success: function(data2){
    console.log(data2);
  }
});

答案 1 :(得分:1)

试试这个

   $.ajax({ url: 'http://myurl.de/get', 
                data: { 'person_id': 2, 'action': 'getLinks' },
                method: 'POST',
                success: function(data2){
                    console.log(data2);
                }
        });

我已更新数据行

使用它:

data: { 'person_id': 2, 'action': 'getLinks' },

而不是

data: [{ 'person_id': 2, 'action': 'getLinks' }],

答案 2 :(得分:1)

数据可以是objectstringarray。当您将data作为

发送时
data: [{ 'person_id': 2, 'action': 'getLinks' }],

它基本上是[>Object],它是一个对象数组。如果有适当的机制在服务器端检索它,您仍然可以以这种方式发送。 但是发送{ 'person_id': 2, 'action': 'getLinks' }您发送的数据为object&我认为您的服务器端配置为接受此格式的数据