发送回响应字符串以在jQuery的ajax函数中使用

时间:2013-07-29 12:37:27

标签: php javascript jquery ajax

我有一个发布帖子请求的功能。

$('#save').click( function() {
  ...
  $.ajax({
    type: 'POST',
    url: 'logic/save.php',
    data: { 'json': JSON.stringify( post ) },
    dataType: 'jsonp',
    success: function( data ) {
      console.log('success!')
    }
  });
} 

请求处理程序是用php编写的,如您所见,并使用mysql执行操作。由于我对php和请求知之甚少,我在控制台中看不到任何成功!输出。 PHP代码运行正常,mysql查询运行没有错误。

我想要的是能够在最后用PHP代码编写一些东西,这样我在js中的代码可以作为肯定响应(如200,OK)和成功!行接收它然后在控制台中(我相信)会出现。

我应该在php文件中添加什么代码?

更新:因为很多人都要求使用php代码,所以这里是link。谢谢你快速回复,伙计们。

1 个答案:

答案 0 :(得分:4)

首先,你应该从jsonp切换到json,因为在这种情况下你不需要jsonp。以下说明假设您已进行了更改。

当您回复客户端时,错误在您的PHP代码中。您可以使用以下行:

print_r( "New item inserted.\n" );

然而,jQuery期望你从你的端点返回JSON(事实上,它应该,因为将明文发送回ajax客户端几乎从来都不是正确的方式)。我们可以通过将上面的行更改为以下内容来使用jQuery:

print json_encode( array('success' => true, 'message' => "New item inserted." ) );

您应该发现自己处于客户的成功回调中。此代码适用于您的成功处理程序:

{ // ...,
    success: function(response) {
        if (response.success) {
            alert(response.message);
        }
    }
}

但是,您可能希望使用除警报之外的其他内容。但这取决于你。