0

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

$('#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 代码,这里是它的链接。谢谢你们的快速回复,伙计们。

4

1 回答 1

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);
        }
    }
}

不过,您可能想要使用警报以外的其他东西。但这取决于你。

于 2013-07-29T12:57:39.560 回答