2016-02-20 86 views
1

我试过这样的8小时,我不明白。AJAX响应空

With $.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始终调用成功函数,但没有data2。

+0

这是什么'return $ output;'? – devpro

+1

谢谢,我现在明白了,这是因为我使用的数组,而不是我的ajax请求中只有一个对象。 – Klassik

回答

4

尝试使用只有对象作为data,无需在阵列包裹它:

$.ajax({ 
    url: 'http://myurl.de/get', 
    data: { 'person_id': 2, 'action': 'getLinks' }, 
    method: 'POST', 
    success: function(data2){ 
    console.log(data2); 
    } 
}); 
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' }], 
1

数据可以是一个或objectstringarray。当发送data作为

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

这将是基本上[>Object]其是物体的阵列。如果有适当的机制在服务器端检索它,您仍然可以通过这种方式发送。 但发送{ 'person_id': 2, 'action': 'getLinks' }您发送的数据为object &我认为你的服务器端配置为接受这种格式的数据